如何动态更改我的包含到js文件?

时间:2015-01-20 12:45:29

标签: javascript jquery html dom

我有一个隐藏的div,其中包含我的新链接:

<div id="links" style="display:none">
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    ...
</div>

我想改变的链接在我脑海中:

<head id="myHead">
    <!-- My olds links I want to replace -->
</head>

我尝试过这样的事情:

updateLinks();
function updateLinks() {
    var str = document.getElementById("links").innerHTML;
    document.getElementById("myHead").innerHTML = str;
}

但是我的头没有收到新的链接。

我想更新我的链接,因为我下载了html文件,当我尝试打开它们时,我有 ERR_FILE_NOT_FOUND

你能帮帮我吗?

3 个答案:

答案 0 :(得分:4)

你想要的是像requirejs这样的异步模块加载器(AMD)。 您可以按需加载所有文件。使用它,实现一个懒惰的脚本加载器很简单。 :)

答案 1 :(得分:3)

只需加载新的js脚本就足够了吗?

您可以使用jQuery方法 getScript 为div中脚本的每个属性src调用它,例如:

$("#links script").each(function() {
    var src = $(this).attr("src");
    $.getScript( src, function( data, textStatus, jqxhr ) {
        console.log( data ); // Data returned
        console.log( textStatus ); // Success
        console.log( jqxhr.status ); // 200
        console.log( "Load was performed." );
    });
});

答案 2 :(得分:0)

这是您的代码

$(function() {
    updateLinks();
});

function updateLinks() {
    var po = document.querySelector('#links script');
    var s = document.querySelector('head'); 
    s.appendChild(po, s)
}

jsFiddle:http://jsfiddle.net/BenoitNgo/6vca82wh/11/ 这个论坛已经回答了这个问题。