gpt4 book ai didi

javascript - 传递给外部 JavaScript 的 JSON 对象

转载 作者:可可西里 更新时间:2023-11-01 02:44:12 26 4
gpt4 key购买 nike

我在看 FireBug Lite并看到他们使用了一种非常酷的技术将选项传递到外部脚本文件中:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js">
{
overrideConsole: false,
startInNewWindow: true,
startOpened: true,
enableTrace: true
}
</script>

这项技术的名称是什么,它是如何工作的?

最佳答案

这不是您想象的自动变量传递技术。

他们的代码所做的就是遍历所有的 script 标签,直到找到加载他们代码的标签(通过将 src 属性与正则表达式进行比较(/(firebug-lite(?:-\w+)?(?:\.js|\.jgz))(?:#(.+))?$/;).

如果找到标签,它会简单地获取 script 标签的 .innerHTML,并对其进行评估。

我想这个(未命名的)技术在现实世界中是不相关的,因为我们没有一个有保证的方法来找到哪个 script 标签引用我们的库(尤其是当它是将所有脚本合并到实时服务器上的一个脚本文件中是很常见的)。

此外,我怀疑这是如何跨浏览器的;因为它肯定不会通过 spec ,其中指出:

话虽如此(并考虑了一下):spec指出浏览器不应同时解释两者。但是,这与此技术无关。浏览器不必对两者进行解释,因为脚本的内容是通过 innerHTML 读入的(即使它确实读入了内容,也无妨)。只要浏览器符合规范并加载 URI(所有浏览器都这样做),就没有问题! (除了不知道/保证你的库属于哪个 script 标签)。

The script may be defined within the contents of the SCRIPT element or in an external file. If the src attribute is not set, user agents must interpret the contents of the element as the script. If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.

(即不要同时解释两者)。

关于javascript - 传递给外部 JavaScript 的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6135309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com