javascript - 如何限制两次调用js append 功能

标签 javascript html function append stylesheet

我需要动态 append css 和 js 文件,并使用下面的方法

document.getElementsByTagName('head')[0].appendChild(); 

此方法不允许第二个参数。 我必须动态 append css 和 js 文件。我调用上述方法两次来 append 文件。限制上述方法仅被调用一次的任何其他通用方法。

这是我尝试过的:

var jscss = function(cp, sp){

    var css = document.createElement("link");
    css.setAttribute("rel", "stylesheet");
    css.setAttribute("type", "text/css");
    css.setAttribute("href", cp);
    document.getElementsByTagName('head')[0].appendChild(css);

    var script = document.createElement('script');
    script.src = sp;
    document.getElementsByTagName('head')[0].appendChild(script);

};

jscss();

最佳答案

嗯,我认为你可以通过向元素提供 id 来实现它,并在 append 它之前检查该元素是否存在。 示例:

 var jscss = function(cp, sp){

    if(!document.getElementById("customStyleSheet")){
        var css = document.createElement("link");
        css.setAttribute("rel", "stylesheet");
        css.setAttribute("id", "customStyleSheet");
        css.setAttribute("type", "text/css");
        css.setAttribute("href", cp);
        document.getElementsByTagName('head')[0].appendChild(css);
    }

    if(!document.getElementById("customScript")){
        var script = document.createElement('script');
        script.src = sp;
        script.id = "customScript";
        document.getElementsByTagName('head')[0].appendChild(script);
    }

    };

    jscss();

希望这对你有帮助:)

关于javascript - 如何限制两次调用js append 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35193927/

相关文章:

javascript - nvd3.js - 无法更改折线图中线条的颜色

javascript - 带选择器的 JQuery 引用变量,数据错误

c - 修改函数中的数组后输出错误(在 C 中)

c++ - 使用 .push_back 将新创建的项目添加到库存中

javascript - 输入上的 keyup 事件不起作用

css - 调整大小传感器 - 在 CSS 中按比例调整 div 大小

javascript - 不播放视频的 HTML5 视频时长

javascript - 不知道为什么 CanvasJS 图表代码会导致空白页面

zsh - 重命名自定义函数

javascript - 如何使用 jquery 将 iframe 添加到 div