JavaScript如何加载外部库?

时间:2013-06-12 19:37:36

标签: javascript

我对JavaScript如何加载外部库感到困惑。它是否对我在脚本标记中指定的URL执行GET请求?浏览器是否处理库的存储或者它是否保存在DOM中的某个位置?

似乎浏览器在加载外部库时可能会做的大多数事情都会违反同源策略。从外部站点加载脚本时是否有任何额外的安全性现代浏览器强制执行?是否可以加载外部库,然后将其源打印到屏幕上?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我对JavaScript如何加载外部库感到困惑。

JavaScript没有本地方法来加载库。这是主机环境(例如浏览器或node.js)提供的功能。

  

是否对我在脚本标记中指定的网址发出GET请求?浏览器是否处理库的存储,还是保存在DOM中的某个位置?

浏览器将发出GET请求,将脚本加载到视口的JavaScript环境中,但只保留DOM中的HTMLScriptElement DOM节点。

  

似乎浏览器在加载外部库时可能会做的大多数事情都会违反同源策略。

相同的原始政策旨在保护第三方网站上的非公开数据。脚本不是数据(尽管它们可以编写,因此它们在其中嵌入了数据,JSON-P依赖于此作为避免相同原始策略的方法)。

  

从外部网站加载脚本时是否有任何额外的安全性现代浏览器强制执行?

没有

  

是否可以加载外部库,然后将其源打印到屏幕上?

否(尽管您可以使用XHR发出单独的HTTP请求来获取脚本源 - 受制于同一原始策略)。