window.locationドキュメントの冒頭で、Greasemonkey を使用して を選択的に無効にしようとしています。
JavaScript を完全に無効にしたくはありません。JavaScript で行われたリダイレクトを無効にするだけです。それらは次のようになります。
window.location = "unwanted url";
window.locationドキュメントの冒頭で、Greasemonkey を使用して を選択的に無効にしようとしています。
JavaScript を完全に無効にしたくはありません。JavaScript で行われたリダイレクトを無効にするだけです。それらは次のようになります。
window.location = "unwanted url";
ありえないと思います。
window.location(サイレントに失敗します)location.__proto__ = Something.prototypelocation.constructor.prototype基本的にObject.prototype__definesetter__静かに失敗するObject.defineProperty次のようなエラーが発生します。TypeError: Cannot redefine property: hrefdelete window.locationそしてdelete window.location.href何もしないでください私はアイデアがありません...
window.locationこれは の「ネイティブ プロパティ」であり、構成可能windowではないため、プロトタイプを変更することはできません。
Firefox (Greasemonkey) でこれをオーバーライドしようとすると、次のようなエラーが発生します。
TypeError: 構成不可能なプロパティ 'location' を再定義できません
と
エラー: ネイティブ プロパティをシャドウする権限が拒否されました
...あなたがそれを試みる方法に応じて。他のブラウザでも同様のエラーが発生します。
この種の再配置をブロックするには、ケースバイケースでページの JavaScript に干渉する必要があります。
Firefox で機能する一般的な方法については、「Javascript 関数の実行を停止する (クライアント側) または微調整する」を参照してください。ターゲット ページの正確なコードによっては、はるかに簡単な場合もあります。
かなり遅すぎますが、スクリプト全体を削除せずに簡単に実行できますObject.prototype.watch:
window.watch('location', function( attr ,_ , target){
if(target.indexOf('unwanted url') !== -1)return '#';
});