javascript - 没有引号,OnClick 函数自动调用

标签 javascript onclick

我编写的脚本有一个按钮,单击该按钮时应显示年份和 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/

相关文章:

javascript - 在 js/jquery 中比较日期

javascript - Lodash groupby 嵌套数组

html - 如何在单击图像时开始播放嵌入式 iframe 视频

javascript - 如何用我的代码在变量中创建一个函数

javascript - HTML/JS : Change inner. HTML 并将其重置回来

javascript - 使用 Node.JS,如何将 JSON 文件读入(服务器)内存?

javascript - 在javascript中使用带有数组的单击来更改图像

javascript - 在 ReactJS 中使用迭代时如何将 onClick 事件传递给父组件?

jquery - onclick 事件的顺序

javascript - 为什么 AJAX 响应不是可排序的方式