2012-03-26 1 views
1

どのようにしてChrome用のpushstateを無効にしますか(テスト目的)?あなたは切り替えが容易になり、プラグイン:)Chromeのpushstateを無効にするにはどうすればよいですか? (Davis.js用)

を知っていれば

ボーナス私は私のpushstateロジックためdavis.jsを使用しています。

+0

「無効にする」とはどのようなテストですか?イベントの仕組みはブラウザのネイティブな部分なので、jsは単に「無効にする」という意味ではなく、単に無効にすることはできません。あなたが行っているテストに関する詳細情報があれば、問題を特定することができます。 – Zirak

+0

私はpushstateをサポートしていないブラウザが私のサイトにヒットしたときに何が起こるかを調べようとしています。私はルーティングのためにDavis.jsを使用しています。私はルーティングからDavisを無効にすることができますが、それは公正なテストではありません。 –

答えて

1

Davis.jsの経路がまだ機能している理由は、リンクをクリックすると経路を直接実行するからです。なぜなら、onPushStateイベントが存在しないため、戻るボタンと進むボタンを使用してルート。

pushStateをサポートしていないブラウザで何が起こるかをエミュレートしたい場合は、Davis.jsがサポートをチェックする方法を気にすることができます。これはDavis.supported functionで行われます。

常にfalseを返すようにその関数をオーバーライドすることができます。これは、通常はpushStateをサポートしていないブラウザで発生します。これをDavis.jsの拡張子にすることができたら、例としてblock iOS extensionを参照してください。

+0

それは私がやっていることを終えたものです。私は本当にダビデを掘っている。 –

+0

うれしい!もしあなたがこれを定期的にやっているとしたら、何らかの種類のブックマークレットやクロムエクステンションにその動作をラップすることができます。もしあなたがそうしたら、私はDavis.jsサイトでそれを紹介します。 –

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

これをコンソールに入れます。タダ!コンテンツスクリプトを使用してページ上で実行するChrome拡張機能を簡単に作成できます。

+1

それは私のために働かないので、私は何かを逃している必要があります。私のDavis.jsルートはまだ実行中です。 –

関連する問題