我有以下脚本:
<script type="text/javascript">
$(document).ready(function(){
document.write("<script type=\"text/javascript\" src=\"http://site.com/script.js\"><\/script>");
});
</script>
当我把它放到页面中时,它会重定向到我不想要的脚本。
我想回复这个我在上面插入代码的javascript文件,所以 它会在页面加载后加载。目前我在使用脚本时 上面,它只显示javascript文件的内容,并且 不是整页。
我希望将它放入我放置此脚本的页面中。
我正在这样做,以便脚本的调用基本上在页面出现时就已加载到位,因为当前这个脚本会导致页面在加载时保持不变。
谢谢。
答案 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; “