浏览器如何包含javascript文件?

浏览器如何包含javascript文件?,javascript,firefox,Javascript,Firefox,当您添加一个带有指向javascript文件的src字段的script标记时,浏览器将获取并执行该标记 我想知道的是这个过程是如何工作的。文件是否被获取,然后以某种方式eval()'?这是一个神秘的过程,发生在我们可以接触的范围之外吗?或者我们可以监控/干预这一点 要解释我想要实现的目标: 我想让第三方通过链接到他们自己的javascript文件来定制他们在我的网站上的页面。我希望能够集中记录阻止加载这些外部脚本的任何错误(例如,它们的服务器关闭、解析错误等等)。可能吗 谢谢 显然还有其他方法

当您添加一个带有指向javascript文件的src字段的
script
标记时,浏览器将获取并执行该标记

我想知道的是这个过程是如何工作的。文件是否被获取,然后以某种方式
eval()
'?这是一个神秘的过程,发生在我们可以接触的范围之外吗?或者我们可以监控/干预这一点

要解释我想要实现的目标: 我想让第三方通过链接到他们自己的javascript文件来定制他们在我的网站上的页面。我希望能够集中记录阻止加载这些外部脚本的任何错误(例如,它们的服务器关闭、解析错误等等)。可能吗

谢谢

  • 显然还有其他方法可以解决这个问题,比如在我的服务器上托管他们的脚本,并给他们一种更新它们的方法,但是我很想知道我目前的方法是否可行

它在加载页面时加载java脚本文件,并将该脚本存储在缓存中。如果你下次加载页面,那么它将从缓存中获取js。

你可以通过一些grep魔术来查看Firefox和Chromium源代码中的具体实现,对于你的特定场景,我会通过动态插入脚本标记并监听全局错误/事件(例如window.onerror)异步地重新加载它们从这里开始。

Greasemonkey是Javascript,在chrome中运行(我认为是sorta)。这是可能的,您只需要研究一下插件是如何工作的。您可以看看这个答案:至少有一些资源供您参考。您只需右键单击并在控制台/检查器等周围搜索,就可以在Firefox和Chrome中看到很多东西。@JaredFarrish:谢谢,但这些是用于扩展的,扩展可以做“普通”javascript无法做/访问的事情。在这种情况下,我谈论的是扩展和在浏览器上运行代码的其他方式。如果您想了解浏览器如何请求、接收、加载和解析,您可能会对其中一些
查看源代码:chrome://
文件感到惊讶。在Chrome中查看此文件:
查看源代码:chrome://resources/js/util.js
复制并粘贴到地址栏中。您正在查看ChromiumJavaScript“源代码”。古怪。是的,这个答案就是我把我发现的东西分类的地方。我从来都不知道。尝试以下操作:
查看源代码:chrome://sync-internals/
第123行开始(至少在我的行上),查看内部资源和其他浏览器脚本的列表。谢谢,但这并不能回答如何获取错误的问题;)