在HTML链接上调用Javascript函数时出错

时间:2014-06-04 05:46:03

标签: javascript jquery html textbox ip-address

我有一个文本框,一个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;
            }

2 个答案:

答案 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;
}

演示:http://jsfiddle.net/Gr632/

答案 1 :(得分:3)

函数DisplayIP需要一个参数response,但是当它使用onclick="DisplayIP()"调用时,不会为该参数传入任何值。因此,它现在正在尝试阅读response.ip以查找未定义的response