0

我在这里有一小段代码可以捕获任何标签点击...

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被点击的元素之间有什么关系吗?

4

0 回答 0