我在advertisespace.com上设置了一些横幅区域 - 我正在尝试使用jquery加载脚本标记,以便在页面加载后加载。然而它不起作用。这是我的代码。
这是我用来包含脚本标记的函数:
function jsinclude(file, dom) {
if (document.createElement && document.getElementsByTagName) {
if(dom=='undefined')
var dom = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', file);
script.setAttribute('charset',"utf-8");
dom.appendChild(script);
} else {
alert('Your browser can\'t deal with the DOM standard. That means it\'s old. Go fix it!');
}
}
这里是我调用函数的方式:
$(function(){
jsinclude('http://ads.advertisespace.com/somethingsomething.js', document.getElementById('location-of-banner-1'));
jsinclude('http://ads.advertisespace.com/somethingsomething.js', document.getElementById('location-of-banner-2'));
})
结果是脚本标记被插入到正确的位置,但横幅没有显示,即所引用的脚本文件中的代码永远不会被执行。我该如何解决这个问题。
答案 0 :(得分:0)
您使用jquery标记了您的问题,为什么不利用它的优势。
dom不是head元素,而dom == 'undefined'
检查变量dom
是否等于字符串'undefined'
。你必须明确地设置它,并且可能不是这种情况。无论如何,有一个head
元素,所以没有必要将它传递给函数 - 函数可以自己处理它。
此外,目前检查DOM功能不适用。我们住在2011年,所有浏览器都包含这些功能。
function jsinclude(file) {
var script = $("<script>", { type: 'text/javascript',
src: file,
charset: 'utf-8' });
$('head').append(script);
}