动态添加脚本元素的问题 - 属性src为空

时间:2010-05-19 10:59:21

标签: javascript dom

我在动态添加脚本元素时遇到问题(使用jQuery)。 向DOM添加新脚本元素的代码如下:

var pScript = document.createElement("script");
pScript.type = "text/javascript";
pScript.src = sFile;


// Add element to the end of head element
$("head").append(pScript);

添加脚本没有问题,代码运行完美。

但是,当我尝试查找新添加的脚本时,会出现问题。我使用此代码迭代所有脚本元素:

var bAdd = true;
$("script").each(function()
{
  if(this.src == sFile)
    bAdd = false;
});

(我需要此代码来防止添加已加载的脚本)

问题是所有其他脚本元素都设置了src属性,但新添加的(动态)没有......

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果src实际上是空的(由于某些安全措施或某些原因),那么你可以尝试其他类似的东西,比如

var include = (function() {
    var included = {};
    return function(url) {
        if (!url in included){
            //include script
            ...
            included[url] = true // you can set it to anything
        }
    };
})();

更新使用included不会污染范围的代码。