我对 JavaScript 如何加载外部库感到有些困惑。它是否对我在脚本标签中指定的 url 执行 GET 请求?浏览器是处理库的存储还是保存在 DOM 中的某个位置?
似乎浏览器在加载外部库时所做的大多数事情都会违反同源策略。从外部站点加载脚本时,现代浏览器是否有任何额外的安全性?是否可以加载外部库,然后将其源打印到屏幕上?
谢谢!
我对 JavaScript 如何加载外部库感到有些困惑。它是否对我在脚本标签中指定的 url 执行 GET 请求?浏览器是处理库的存储还是保存在 DOM 中的某个位置?
似乎浏览器在加载外部库时所做的大多数事情都会违反同源策略。从外部站点加载脚本时,现代浏览器是否有任何额外的安全性?是否可以加载外部库,然后将其源打印到屏幕上?
谢谢!
我对 JavaScript 如何加载外部库感到有些困惑。
JavaScript 没有本地方式来加载库。这是宿主环境(例如浏览器或 node.js)提供的功能。
它是否对我在脚本标签中指定的 url 执行 GET 请求?浏览器是处理库的存储还是保存在 DOM 中的某个位置?
浏览器将发出 GET 请求,将脚本加载到视口的 JavaScript 环境中,但仅将 HTMLScriptElement DOM 节点保留在 DOM 中。
似乎浏览器在加载外部库时所做的大多数事情都会违反同源策略。
同源政策旨在保护第三方网站上的非公开数据。脚本不是数据(尽管它们可以被写入,因此它们在其中嵌入了数据,但 JSON-P 以此作为避免同源策略的一种方式)。
从外部站点加载脚本时,现代浏览器是否有任何额外的安全性?
不
是否可以加载外部库,然后将其源打印到屏幕上?
否(尽管您可以使用 XHR 发出单独的 HTTP 请求来获取脚本源 — 这受制于相同的源策略)。