我在这里有一小段代码可以捕获任何标签点击...
var debug = Base.debug;
$(document).on('click', 'a', function () {
if (debug) {
console.log("Caught click going to '" + $(this).attr('href') + "'");
}
Base.push({ href: $(this).attr('href'), extra: "Caught href from 'a' element" });
return false;
});
虽然我得到了它似乎是我使用它的时候Uncaught Error: SecurityError: DOM Exception 18
,但是当我使用它时push
它不会发生。
push
仍然被称为任何一种方式。
我正在使用本地文件系统进行开发。就像http
我使用的是file
.
我还没有尝试过,http
但我认为错误会根据其他问题消失。
实际的潜在错误是什么?实际上出了什么问题?其他人已经问过,但他们只得到了如何解决它的答案。我想了解它。
编辑 1
我将错误追踪到:
return m.isLastSavedState(f) ? m.busy(!1) : (m.storeState(f), m.expectedStateId = f.id, n.replaceState(f.id, f.title, f.url), m.Adapter.trigger(a, "popstate")), !0
在jQuery 1.9.1
Base.push
做一些小事情,比如将一些东西存储在本地存储中,然后location.assign
使用给定的调用href
编辑 2
注释掉Base.push
没有意义的调用时,我不再收到错误,因为当我调用Base.push
它时,它运行良好,没有错误。而且点击仍在继续。返回 false 不会停止href
继续。
location.assign
我打电话和a
被点击的元素之间有什么关系吗?