2013-06-12 97 views
1

我對JavaScript如何能夠加載外部庫感到困惑。它是否對我在腳本標記中指定的url執行GET請求?瀏覽器是處理庫的存儲還是保存在DOM中的某個地方?JavaScript如何加載外部庫?

似乎瀏覽器加載外部庫時可能會做的大多數事情都違反了同源策略。從外部網站加載腳本時是否有任何額外的安全性現代瀏覽器強制執行?是否可以加載外部庫,然後將其源代碼打印到屏幕上?

謝謝!

+0

你是什麼意思加載外部庫? –

+0

我假設他是指一個外部.JS文件以及它如何被下載/加載到內存中。 –

+4

'script'標籤可以加載來自不同來源的腳本。他們不遵守同源政策。事實上,他們正在使用相同的源策略的解決方法,請參閱'JSONP'。 –

回答

2

我對JavaScript如何能夠加載外部庫感到困惑。

JavaScript沒有本地方式來加載庫。這是主機環境提供的功能(如瀏覽器或node.js)。

它是否對我在腳本標記中指定的url執行GET請求?瀏覽器是處理庫的存儲還是保存在DOM中的某個地方?

瀏覽器將發出GET請求,將腳本加載到視口的JavaScript環境中,但只保留DOM中的HTMLScriptElement DOM節點。

瀏覽器加載外部庫可能會做的大部分事情似乎違反了同源策略。

同一來源政策旨在保護第三方網站上的非公開數據。腳本不是數據(儘管它們可以被寫入,因此它們已經嵌入了數據,JSON-P依靠這種方式來避免相同的來源策略)。

當從外部網站加載腳本時是否有任何額外的安全性現代瀏覽器強制執行?

沒有

是否有可能加載外部庫,然後打印其源到屏幕?

否(雖然你可以使用XHR製作一個單獨的HTTP請求,以獲得腳本源 - 這是受同源策略)。