文件撰写(”

时间:2012-07-12 14:18:12

标签: javascript html

以下脚本的工作方式类似于sharm:

<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的例子非常欢迎

感谢

3 个答案:

答案 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所解释的那样,你在这里采取的方法将抹掉页面上的任何其他内容。可能不是你想要的。