2012-07-12 61 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