我有一个文本框,一个HTML链接&一个JavaScript函数。
JavaScript函数用于获取客户端计算机的IP地址。当我点击链接时,我试图调用此功能&在我的文本框中显示结果。但是,我没有得到结果。
这是我得到的错误。
Uncaught TypeError: Cannot read property 'ip' of undefined
我的文字框:
<input type="text" id="txtmyip" name="txtmyip"readonly>
我的HTML链接:
<a href="#" onclick="DisplayIP();" >Show IP Address</a>
我的Javascript功能:
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://www.telize.com/jsonip?callback=DisplayIP";
document.getElementsByTagName("head")[0].appendChild(script);
function DisplayIP(response)
{
document.getElementById("txtmyip").value = response.ip;
}
答案 0 :(得分:6)
您需要分离JSONP请求功能和显示功能。例如:
function displayIP() {
var script = document.createElement("script");
script.src = "http://www.telize.com/jsonip?callback=populateIP";
document.head.appendChild(script);
}
function populateIP(response) {
document.getElementById("txtmyip").value = response.ip;
}
答案 1 :(得分:3)
函数DisplayIP
需要一个参数response
,但是当它使用onclick="DisplayIP()"
调用时,不会为该参数传入任何值。因此,它现在正在尝试阅读response.ip
以查找未定义的response
。