以下脚本的工作方式类似于sharm:
<script type="text/javascript">
document.write('<scr'+'ipt type="text/javascript">alert("werwer")</sc'+'ript>');
</script>
但是这个没有!为什么呢?
<script type="text/javascript">
$.getScript('http://www.geoplugin.net/javascript.gp', function() {
$location = geoplugin_countryName();
if($location == "Canada" || $location == "United States") {
// >>>some code>>>
} else {
document.write('<scr'+'ipt type="text/javascript">alert("werwer")</sc'+'ript>');
}
});
</script>
请帮助我一个使用jsfiddle的例子非常欢迎
感谢
答案 0 :(得分:5)
真正的原因是它永远无法工作的原因是您的document.write()
调用将在$.getScript()
调用的异步回调中发生。在原始文档关闭后,会发生这种情况。
结果将是原始页面的其余部分将被完全删除。
目前尚不清楚使用document.write()
可能是什么意思。
答案 1 :(得分:3)
getScript
是一个jQuery方法,你的jsfiddle配置为加载MooTools。
使用jsfiddle的示例: http://jsfiddle.net/VHLTx/1/
答案 2 :(得分:0)
您需要包含jQuery才能使用getScript()
。您提供的无效小提琴上的控制台错误(http://jsfiddle.net/g3kMt/1)显示getScript()
是未定义的方法。设置显示您正在加载MooTools,而不是jQuery。
这是一个有效的更新版本:http://jsfiddle.net/g3kMt/2/我所做的只是更改下拉菜单以指定jQuery而不是MooTools。在您的网站上运行的实际代码中,您需要确保加载jQuery。
这是一个可以剪切并粘贴到HTML文档中的版本:
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$.getScript('http://www.geoplugin.net/javascript.gp', function() {
$location = geoplugin_countryName();
if($location == "Canada" || $location == "United States") {
document.write('<scr'+'ipt type="text/javascript">alert("werwer")</sc'+'ript>');
} else {
document.write('<scr'+'ipt type="text/javascript">alert("werwer")</sc'+'ript>');
}
});
</script>
正如Pointy所解释的那样,你在这里采取的方法将抹掉页面上的任何其他内容。可能不是你想要的。