gpt4 book ai didi

javascript - 脚本标签的 src 属性是否应该为 null 或者空字符串?

转载 作者:行者123 更新时间:2023-11-30 13:14:26 24 4
gpt4 key购买 nike

我正在使用 PrinceXML制作一些 HTML 的 PDF,其中包括一些 MathJax标记。为了正确呈现数学,处理数学呈现的 javascript 需要在转换为 PDF 之前在页面上运行。

如果我在 PrinceXML 中启用 javascript 并尝试加载 MathJax 库,我会在初始化代码中收到“类型错误:空值不是对象”。追查下来,原来是以下原因导致了错误:

var scripts = (document.documentElement || document).getElementsByTagName("script");
var namePattern = new RegExp("(^|/)"+BASENAME+"\\.js(\\?.*)?$");
for (var i = scripts.length-1; i >= 0; i--) {
if (scripts[i].src.match(namePattern)) { // <--- Error thrown here
STARTUP.script = scripts[i].innerHTML;
if (RegExp.$2) {
<etc...>

错误是在没有 src 属性的脚本元素上抛出的(MathJax 使用脚本元素来存储 LaTeX 代码)。 PrinceXML 似乎通过在访问缺失的 src 属性时返回 null 来处理缺失的 src 属性 - 因此 scripts[i].src.match(namePattern) 抛出错误,因为 src 为 null .然而,当在 Firefox 中完成时(参见 fiddle :http://jsfiddle.net/9ZHMR/),当 src 属性缺失时,element.src 返回空字符串,所以我在浏览器中工作时没有看到这个问题。

哪种行为是“正确的”——如果属性不存在,脚本元素的 src 属性应该为 null 还是空字符串?这是现实生活与标准的对比吗?

编辑 我主要对这种行为是否由某个地方的标准指定感兴趣,所以我知道是否要向 Firefox 或 PrinceXML 发布错误报告,或者如果没有标准,请发布错误报告给 MathJax 来处理这种情况。

最佳答案

规范在 http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#the-script-element说:

 attribute DOMString src;

这不是一个可为 null 的字符串返回值,因此规范不允许从 .src 返回 null。

关于javascript - 脚本标签的 src 属性是否应该为 null 或者空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617028/

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