window.location
ドキュメントの冒頭で、Greasemonkey を使用して を選択的に無効にしようとしています。
JavaScript を完全に無効にしたくはありません。JavaScript で行われたリダイレクトを無効にするだけです。それらは次のようになります。
window.location = "unwanted url";
window.location
ドキュメントの冒頭で、Greasemonkey を使用して を選択的に無効にしようとしています。
JavaScript を完全に無効にしたくはありません。JavaScript で行われたリダイレクトを無効にするだけです。それらは次のようになります。
window.location = "unwanted url";
ありえないと思います。
window.location
(サイレントに失敗します)location.__proto__ = Something.prototype
location.constructor.prototype
基本的にObject.prototype
__definesetter__
静かに失敗するObject.defineProperty
次のようなエラーが発生します。TypeError: Cannot redefine property: href
delete 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 '#';
});