2012-07-12 87 views
1

下面的脚本作品就像一个沙姆沙伊赫:文件撰写( '<SCR' +“IPT ...不工作

<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请帮我一个例子非常欢迎

感谢

+2

请定义“不工作”。 – kapa 2012-07-12 14:19:33

+0

http://jsfiddle.net/g3kMt/1/ - >它不显示消息 – user1520883 2012-07-12 14:21:11

+1

.getScript()可能完全失败。检查控制台是否有错误。 – Trott 2012-07-12 14:21:12

回答

3

getScript是一个jQuery方法,你的jsfiddle被配置成加载MooTools的。

一个例子使用的jsfiddle: http://jsfiddle.net/VHLTx/1/

+0

它仍然不会工作;在文档关闭后,它几乎肯定会最终执行'document.write()'调用。 – Pointy 2012-07-12 14:24:18

+0

jsfiddle.net/akhurshid/WktTV – user1520883 2012-07-12 14:24:57

+0

http://stackoverflow.com/questions/11454421/javascript-call-not-calling – user1520883 2012-07-12 14:48:22

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> 

至于尖尖的解释,这种方法你走在这里会抹杀页面上的任何其他内容。可能不是你想要的。

+0

jsfiddle.net/akhurshid/WktTV – user1520883 2012-07-12 14:25:14

+0

是的,它会工作,如果你加载jQuery。明显。 – Trott 2012-07-12 14:27:03

+0

如果回调调用'document.write()的':-) – Pointy 2012-07-12 14:28:13

5

真正原因,它从来没有去上班是你document.write()呼叫将在异步回调到$.getScript()通话发生。那会发生原始文件已关闭。

结果将是原来页面的其余部分将被完全抹杀。

目前还不清楚是什么用途document.write()点可能是反正。

+0

好吧,那我该怎么做呢? – user1520883 2012-07-12 14:36:23

+0

http://stackoverflow.com/questions/11454421/javascript-call-not-calling – user1520883 2012-07-12 14:48:13