1

下面的脚本就像一个 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的例子非常受欢迎

谢谢


<?php
$am = "7:30AM";
$pm = "8:30PM";
$minutes_diff = round(abs(strtotime($pm) - strtotime($am)) / 60);
4

3 回答 3

5

它永远无法工作的真正原因是您的document.write()调用将在调用的异步回调中发生$.getScript()。这将在原始文档关闭后发生。

结果将是原始页面的其余部分将被完全删除。

目前尚不清楚这种使用的意义是什么document.write()

于 2012-07-12T14:26:53.737 回答
3

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

使用 jsfiddle 的示例:http: //jsfiddle.net/VHLTx/1/

于 2012-07-12T14:22:34.383 回答
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 解释的那样,您在此处采用的方法将消除页面上的任何其他内容。可能不是你想要的。

于 2012-07-12T14:23:00.480 回答