以下脚本的工作方式类似于沙姆:
<script type="text/javascript">
document.write('<scr'+'ipt type="text/javascript">alert("werwer")</sc'+'ript>');
</script>http://jsfiddle.net/VHLTx/
但是这个不是!为什么?
<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的例子非常受欢迎
谢谢
发布于 2012-07-12 22:26:54
真正的原因是它永远不会工作,因为您的document.write()调用将在对$.getScript()调用的异步回调中发生。这将在关闭原始文档之后发生。
结果将是原始页面的其余部分将被完全删除。
目前还不清楚使用document.write()的目的是什么。
发布于 2012-07-12 22:22:34
getScript是一个jQuery方法,您的jsfiddle被配置为加载MooTools。
使用jsfiddle的示例:http://jsfiddle.net/VHLTx/1/
发布于 2012-07-12 22:23:00
要使用getScript(),您需要包含jQuery。您提供的not-working fiddle (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解释的那样,你在这里采取的方法将会删除页面上的任何其他内容。可能不是你想要的。
https://stackoverflow.com/questions/11453864
复制相似问题