jQuery&文件撰写

时间:2011-11-08 10:49:46

标签: jquery document.write

我有以下脚本:

<script type="text/javascript">
$(document).ready(function(){ 
    document.write("<script type=\"text/javascript\" src=\"http://site.com/script.js\"><\/script>");
});
</script>

当我把它放到页面中时,它会重定向到我不想要的脚本。

  

我想回复这个我在上面插入代码的javascript文件,所以   它会在页面加载后加载。目前我在使用脚本时   上面,它只显示javascript文件的内容,并且   不是整页。

我希望将它放入我放置此脚本的页面中。

我正在这样做,以便脚本的调用基本上在页面出现时就已加载到位,因为当前这个脚本会导致页面在加载时保持不变。

谢谢。

5 个答案:

答案 0 :(得分:9)

尝试:

$(document).ready(function(){ 
    $('body').append("<script type=\"text/javascript\" src=\"http://site.com/script.js\"><\/script>");
});
在加载文档之前调用

document.write 添加,但之后它将替换现有内容。

答案 1 :(得分:5)

试试这个:

$(function() {

    $.getScript("http://site.com/script.js");
});

$。getScript还允许您在脚本成功执行后调用函数。

答案 2 :(得分:4)

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    </head>
    <body>
        <!-- content here... -->
    </body>
    <script>
        $.getScript('http://site.com/script.js');
    </script>
</html>

将脚本放在页面末尾以“延迟”脚本执行。使用jQuery.getScript()来获取并执行脚本。

编辑为避免疑问,添加了查询。显然,需要尽早让$.getScript工作。

答案 3 :(得分:0)

这可能是一种更清洁的方法:

$(document).ready(function(){ 
    $('<script>')
        .attr('type', 'text/javascript')
        .attr('src', 'http://www.example.com/script.js')
        .appendTo('body');
});

或者:

$(document).ready(function(){ 
    $('<script>')
        .attr({'type': 'text/javascript', 'src': 'http://www.example.com/script.js'})
        .appendTo('body');
});

答案 4 :(得分:-1)

要将主页加载与广告加载分离,您可以将广告放在iframe中的自己的页面中,或者类似地,使用AJAX下载脚本文件并在其下载时执行。如果前者不够,因为引用URI或其他什么,后者给你一些灵活性:你可以使用字符串替换将“document.write”重写为其他东西,或者可能暂时替换它像“document.write = custom_function; “