ホームページ > 記事 > ウェブフロントエンド > クライアント側での Javascript 関数の実行を防止または変更するにはどうすればよいですか?
背景
場合によっては、次のような状況に遭遇することがあります。 Javascript の特定の行が実行されないようにするか、クライアント側からその動作を変更する必要があります。これは、特に Web サイトのコードにアクセスできない場合には、困難になる可能性があります。
Firefox と Greasemonkey による実行の防止
Firefox は、「beforescriptexecute」イベントをサポートしています。を使用すると、特定のスクリプト タグの実行をインターセプトして停止できます。 Greasemonkey スクリプトを使用すると、このイベントを悪用し、特定のコード行の実行を阻止できます。以下に例を示します。
// @name Custom Javascript Interceptor // @include *://example.com/* // @run-at document-start var badFunctionRegex = /some_function_name/; function checkForBadFunctions(event) { // Check if the script contains the bad function if (event.target.textContent.match(badFunctionRegex)) { // Prevent execution event.stopPropagation(); event.preventDefault(); } } // Attach the event listener window.addEventListener('beforescriptexecute', checkForBadFunctions, true);
関数の動作の変更 (Chrome Tampermonkey では不可能)
Firefox では、インターセプトされたスクリプトを変更されたバージョンに置き換える機能も提供しています。 Greasemonkey スクリプトで、必要な変更を指定するコールバック関数を定義できます。
制限事項
このメソッドは Chrome と Tampermonkey では使用できないことに注意してください。他のブラウザの場合、この機能を実現するには完全なブラウザ拡張機能を作成する必要がある場合があります。
結論
クライアント側からの Javascript 関数の実行を防止または変更すると、これは、Firefox と Greasemonkey の「beforescriptexecute」イベントを使用して実行できます。ただし、さまざまなブラウザでこのアプローチを使用する場合には制限があることに注意してください。
以上がクライアント側での Javascript 関数の実行を防止または変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。