【发布时间】:2013-05-03 19:53:51
【问题描述】:
我正在使用 Firefox 构建一个带有 Knockout 的屏幕,并在页面上打开 Firebug。
在一个非常特殊的情况下,我从 Firefox 收到一个无响应的脚本错误,经过大量测试后,我将其范围缩小到仅在打开 Firebug 的这种特定情况下发生。当它关闭时,我没有收到错误。
在多次通过 Knockout 调试 js 并出现此错误后,我发现第一个“无响应脚本”弹出窗口发生在处理结束注释 (1807) 附近
setDomNodeChildren: function(node, childNodes) {
if (!isStartComment(node))
ko.utils.setDomNodeChildren(node, childNodes);
else {
ko.virtualElements.emptyNode(node);
var endCommentNode = node.nextSibling; // Must be the next sibling, as we just emptied the children
for (var i = 0, j = childNodes.length; i < j; i++)
endCommentNode.parentNode.insertBefore(childNodes[i], endCommentNode);
}
},
或在 1728 附近,也接近关于结束评论的工作
function isEndComment(node) {
return (node.nodeType == 8) && (commentNodesHaveTextProperty ? node.text : node.nodeValue).match(endCommentRegex);
}
但它每次都在不同的位置,如果我在无响应的脚本弹出窗口上单击“继续”,我可以继续前进。
在没有 Firebug 的情况下运行不会出错,在 Chrome 中使用或不使用开发人员工具运行都不会出错。
我不知道该尝试什么或发布什么代码来帮助解决我的问题,因为我使用 Firefox 和 Firebug 使用 Knockout 制作了许多屏幕,这是我第一次遇到问题像这样。
但我非常感谢有关如何让萤火虫停止导致此问题的任何提示或建议。 (虽然也许我只需要迁移到 Chrome...)
【问题讨论】:
标签: firefox knockout.js firebug