我编写的脚本有一个按钮,单击该按钮时应显示年份和 IP 地址,但它会自动显示。我在另一个 3D 中看到,当您在“onclick”选项中放置一个函数时会出现此问题
<button name="bottone" onclick=myFunction()>AH-AH</button>
但这不是我的情况。
<button name="bottone" onclick=myFunction>AH-AH</button>
<p id="demo"></p>
<script>
function myFunction(json) {
var d = new Date();
var n = d.getFullYear();
var ip = json.ip;
document.getElementById("demo").innerHTML = n + ' ' + ip;
}
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=myFunction"></script>
似乎第二个脚本“覆盖”了 onClick 选项。
最佳答案
脚本会立即调用您的函数:
myFunction({"ip": "88.9.35.40", "address":"88.9.35.40"});
相反,您可以将数据存储在一个变量中,然后在事件处理程序中使用该变量:
<button name="bottone">Display year and IP</button>
<p id="demo"></p>
<script>
(function() {
var ipData;
window.getIpData = function(data) { // We must use awful global for JSONP
delete window.getIpData; // Get rid of the awful global
ipData = data;
};
document.getElementsByName('bottone')[0].onclick = function() {
if(ipData) {
var year = new Date().getFullYear(),
ip = ipData.ip;
document.getElementById("demo").innerHTML = year + ' ' + ip;
}
}
})();
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getIpData"></script>
关于javascript - 没有引号,OnClick 函数自动调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29716508/