如何为Chrome禁用pushstate? (对于Davis.js)

时间:2012-03-26 14:43:24

标签: javascript google-chrome pushstate

如何禁用Chrome的pushstate(用于测试目的)?

如果你知道一个易于切换的插件,可以获得奖励:)

我正在使用davis.js作为我的pushstate逻辑

2 个答案:

答案 0 :(得分:3)

history.pushState = function (){};
//An empty function so if it is used, it doesn't throw any errors

把它放在控制台中。田田!您可以轻松制作使用内容脚本在页面上执行该扩展程序的Chrome扩展程序。

答案 1 :(得分:1)

您的Davis.js路由仍在工作的原因是因为当您单击链接时它会直接运行您的路由,因为没有onPushState事件,您应该会发现使用后退和前进按钮不再触发您的路由。

如果你想模仿不支持pushState的浏览器中发生的事情,你可以愚弄Davis.js如何检查支持。这是在Davis.supported function

中完成的

您可以覆盖该函数以始终返回false,这是在不支持pushState的浏览器中通常会发生的情况。如果您希望将其包装成Davis.js扩展名,请参阅block iOS extension作为示例。