0

我的 Javascript/html 代码如下所示,效果很好,并在Part 1下面显示国家名称。

当我尝试转换时,code in .JS file它不起作用意味着没有在Part 2..中显示国家名称。不确定代码中有什么问题

第1部分

<script src="http://code.jquery.com/jquery-1.8.2.js" type="text/javascript"></script>
<script type="text/javascript">

var strip, strcountry, strcity, strregion, strlatitude, strlongitude, strtimezone
function GetUserInfo(data) {
strip = data.host; strcountry = data.countryName; 
}

$(function ()
{
BindUserInfo();
})

function BindUserInfo()
{
document.getElementById('lblCountry').innerHTML = strcountry;
}
</script>
<script type="text/javascript" src="http://smart-ip.net/geoip-json?callback=GetUserInfo"></script>
</head>
<body>

We Ship To <a id="lblCountry"/>
</body>

第2部分

// JavaScript Document

document.write("<script src='http://code.jquery.com/jquery-1.8.2.js' type='text/javascript'></script>");

var strip, strcountry, strcity, strregion, strlatitude, strlongitude, strtimezone
function GetUserInfo(data) {
strip = data.host; strcountry = data.countryName; 
}

$(function ()
{
BindUserInfo();
})

function BindUserInfo()
{
document.getElementById('lblCountry').innerHTML = strcountry;
}

document.write("<script type='text/javascript' src='http://smart-ip.net/geoip-json?callback=GetUserInfo'></script>");

这是第 2 部分的 HTML

<head>
<title>Get User Details IP Address, city, country, state, latitude, longitude </title>
<script src="test.js" type="text/javascript"></script>

</head>
<body>

We Ship To <a id="lblCountry"/>

</table>
4

1 回答 1

3

在您的 HTML 中仍然包含 jQuery 引用作为真正的脚本标记 - 并删除document.write.

也在;var名单的最后……也许吧。

你的<head>标签应该是

<head>
  <title>Get User Details IP Address, city, country, state, latitude, longitude
    </title>
  <script src='http://code.jquery.com/jquery-1.8.2.js' type='text/javascript'>
    </script>
  <script src="test.js" type="text/javascript"></script>
</head>

正如保罗指出的那样document.write,已弃用。您应该始终尝试包含<script> 标签而不是操纵 DOM。我认为你这样做的方式意味着你文件中的 jQuery 代码将在 jQuery 加载之前执行 - 因为你在代码之前直接将标签直接写入 DOM。所以没有时间来解析它。我认为这段代码实际上会引发错误。

于 2013-06-20T15:16:34.737 回答