簡體   English   中英

如何從另一個加載一個JavaScript文件?

[英]How to load one JavaScript file from another?

如何從另一個JavaScript文件加載一個JavaScript文件,如CSS? 在CSS中我們使用write @import url("mycss.css");

有沒有辦法在JavaScript中做到這一點?

Javascript中沒有@ import-ish函數/方法,但您可以簡單地將腳本附加到<head>標記,如下所示:

var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = '/path/to/js/file';
document.getElementsByTagName('head')[0].appendChild(newScript);

或者就像埃德加在我之前提到的那樣你可以使用jQuery。

是。 如果您想要純JavaScript,則必須動態創建script標記,並將其附加到文檔中。

是。 如果使用jQuery庫,則可以使用$.getScript方法。

$.getScript("another_script.js");

僅僅因為沒有人提到它,還有另一種選擇,它不需要任何花哨的庫或棘手的編碼, document.write 原則上,它看起來像這樣,雖然請參閱下面的警告:

document.write('<script src="myscript.js" type="text/javascript"></script>');

這將在完全解析腳本標記時執行,如果您將腳本標記放在頭部,新腳本標記也將在執行一個標記之后的頭部。 注意直接執行它而不是在加載文檔時(如$(function(){})回調。這是我使用的:

(function(){
  function load(script) {
    document.write('<'+'script src="'+script+'" type="text/javascript"><' + '/script>');
  }

  load("script1.js");
  load("script2.js");
  load("etc.js");
})();

封閉函數就是不污染全局命名空間。

警告(以及為什么上面分解的'腳本')腳本標記中可能沒有結束腳本標記,HTML解析器不知道它是腳本的一部分。 關於這個問題還有另外一個問題

除了eval字符串的能力之外,Javascript本身不提供任何模塊化幫助。 但是,這是一個普遍的需求,大多數大型JavaScript框架都提出了自己的解決方案,最近,我們一直在努力在requirejs項目中標准化這些API。 如果你正在使用像Dojo或jQuery這樣的框架,你可能最好學會使用他們的設施,但如果沒有, requirejs就是一個輕量級的獨立工具。 你基本上只是添加

<script data-main="scripts/main" src="scripts/require.js"></script>

到你的<head>部分,然后將你自己的javascript放在像這樣的包裝器代碼中(從require.js站點竊取):

require(["helper/util"], function() {
    //This function is called when scripts/helper/util.js is loaded.

    require.ready(function() {
        //This function is called when the page is loaded
        //(the DOMContentLoaded event) and when all required
        //scripts are loaded.

    });
});

使用const dataName =require('./fileName.js');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM