如何使用 JS 在 HTML 中将 IP 显示为文本

How to show IP as Text in HTML using JS?

本文关键字:IP 显示 文本 中将 HTML 何使用 JS      更新时间:2023-09-26

我的HTML中有以下脚本,但是我得到一个问号而不是实际的IP:

<script type="application/javascript">
    var myButton = document.getElementById("clickButton");
    var myText = document.getElementById("helloText");
    myButton.addEventListener('click A', doSomething(), false);
    function doSomething(json) {
        myText.textContent = (json.ip);
    }
    function getIP(json) {
        return json.ip;
    }
</script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP">
</script>

问题是doSomething没有接收 JSON 作为参数。您需要getIP将返回的 IP 放入全局变量中,然后doSomething可以显示它。

var myButton = document.getElementById("clickButton");
var myText = document.getElementById("helloText");
myButton.addEventListener('click', doSomething, false);
function doSomething() {
  myText.textContent = IP;
}
<script type="application/javascript">
  var IP;
  function getIP(json) {
    IP = json.ip;
  }
</script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP">
</script>
<button id="clickButton">Show IP</button>
<div id="helloText"></div>

此外,要addEventListener的第二个参数应该只是函数名称,而不是对函数的调用。第一个参数应该只是事件的名称。没有click A事件,只有click.

加载

//api.ipify.org脚本时调用getIP()函数。您的getIP()函数只返回 IP 地址。除此之外,它不做任何事情。尝试执行以下操作:

<div id="mydiv"></div>
<script>
var getIP = function(json) {
  document.getElementById("mydiv").innerHTML = json.ip;
}
</script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP">
</script>