将JavaScript从标记移动到单独的.js文件

将JavaScript从标记移动到单独的.js文件,javascript,jquery,Javascript,Jquery,我的Javascript/html代码如下所示,非常有效,并在下面的第1部分中显示了国家名称 当我试图转换.JS文件中的代码时,它不起作用意味着在第2部分中不显示国家名称。。不确定代码中有什么错误 第1部分 <script src="http://code.jquery.com/jquery-1.8.2.js" type="text/javascript"></script> <script type="text/javascript"> var strip

我的Javascript/html代码如下所示,非常有效,并在下面的
第1部分中显示了国家名称

当我试图转换.JS文件中的
代码时,它不起作用意味着在
第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>

可变地带、strcountry、strcity、strregion、strlatude、strlongtude、strtimezone
函数GetUserInfo(数据){
strip=data.host;strcountry=data.countryName;
}
$(函数()
{
BindUserInfo();
})
函数BindUserInfo()
{
document.getElementById('lblCountry')。innerHTML=strcountry;
}
我们乘船去
第二部分

// 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>");
<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>
//JavaScript文档
文件。填写(“”);
可变地带、strcountry、strcity、strregion、strlatude、strlongtude、strtimezone
函数GetUserInfo(数据){
strip=data.host;strcountry=data.countryName;
}
$(函数()
{
BindUserInfo();
})
函数BindUserInfo()
{
document.getElementById('lblCountry')。innerHTML=strcountry;
}
文件。填写(“”);
这是第2部分的HTML

// 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>");
<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>

获取用户详细信息IP地址、城市、国家、州、纬度、经度
我们乘船去

将jQuery引用作为真正的脚本标记包含在HTML中,然后删除
文档。编写

var
列表的末尾。。。也许吧

您的
标签应该是

<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>

获取用户详细信息IP地址、城市、国家、州、纬度、经度

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

仍然将jQuery引用作为真正的脚本标记包含在HTML中,并删除
文档。编写

var
列表的末尾。。。也许吧

您的
标签应该是

<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>

获取用户详细信息IP地址、城市、国家、州、纬度、经度

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

document.write
是早期JavaScript的可怕残余。
document.write
是早期JavaScript的可怕残余。事实上,问题是document.write写在正文的末尾,这意味着jQuery被添加到末尾,因此,在解析并执行所有其他脚本之前,不会解析它。您可以避免在test.js之前插入script标记,但正如其他人所指出的,请尽量避免document.write。@JuanGuerrero我认为即使它在正文的开头写入,也不会立即解析它,是吗?这意味着
$(function()…
调用将失败…@ElRonnoco是的,即使他在头上写,它仍然会在当前脚本之后被解析,使我的观点无效。很好的理解!@JuanGuerrero你的观点不是无效的,只是这样做从根本上是有缺陷的:)事实上,问题是document.write写在正文的末尾,这意味着jQuery是在末尾添加的,因此在解析并执行所有其他脚本之前不会解析它。您可以避免在test.js之前插入script标记,但正如其他人所指出的,请尽量避免document.write。@JuanGuerrero我认为即使它在正文的开头写入,也不会立即解析它,是吗?这意味着
$(function()…
调用将失败…@ElRonnoco是的,即使他在头上写了它,它仍然会在当前脚本之后被解析,使我的观点无效。很好的理解!@JuanGuerrero你的观点不是无效的,只是这样做从根本上是有缺陷的:)