この記事で説明した方法は、そのようなニーズのあるプロジェクトに遭遇したことがないため、実際のプロジェクトには適用されていませんが、実験の結果、実現可能であることがわかりました。
1. 私のアイデアの源
JavaScipt の登場により、Web ページの表現がより活発になります。もちろん、その利点はそれだけではありません。近年、AJAX アプリケーションのブームにより、JavaScipt という小さな言語が注目され始めています。 (多くのプログラムは素晴らしいものです)それを言語、せいぜいスクリプト名と考えてください、そしてスクリプトを実行する人々のアプリケーションを軽視することさえあります)。現在、多くのブログ公式 Web サイトではスクリプトのアクセス許可が公開されており、ユーザーがスクリプトをカスタマイズして自分のスペースを充実させることができます。特に一部の技術ブログや専門ブログでは、かなりリラックスした開発環境が提供されています。しかし、多くのブログが特定のスクリプト メソッドを制限していることもわかりました。ここで話しているのは部分的な制限であることに注意してください。完全な制限の場合は、<script> スクリプト ブロックを除外するだけです。しかし、部分的な制限はどのように実現されるのでしょうか。 </script>
これまでのプロジェクトではそのような問題に遭遇したことがなかったので、最初はあまり深く調査せず、感覚に基づいて「置き換え」方法を使用することを考えました。何か問題が発生する可能性があるため、そのようなアプローチは明らかに機能しません。たとえば、アラート メソッドを無効にしたい場合は、次のコードを使用します:
window.alert('何らかのメッセージ');
上記のコードを無効にするには、アラートを大文字の ALERT に変更するだけです。これによりスクリプト エラーが発生しますが、try{}catch{} を使用して ALERT を変更することもできます。しかし、これは禁止パッケージを識別する上で大きな問題であり、document.write('alert some message'); のアラートも置き換えられるというエラーも発生します。
その後、メソッドを書き換えて無効にして何もしないようにすることを考えましたが、それが本当に実現可能であることがわかりましたが、それが科学的な方法であるかどうかはわかりません。それについてはみんなで議論します。 。 一度。
2. 具体的な実装
まず、「alert」メソッドと「write」メソッドを無効にする次のコードを確認してください。
window.alert=function(){} document.write=function(){} window.alert('Alert some message'); document.write('Write some message');
実際のアプリケーションでは、最初の 2 行を個別に抽出して外部 JS ファイルに保存し、この JS ファイルを JavaScript メソッドをフィルタリングする必要があるページに最初にロードします (編集することもできます)。ユーザーがこのスクリプトをブロックの前の行にロードすると、管理者または Web ページ作成者は無効になるメソッドを前の HTML ブロックで引き続き使用できるようになります)。そのため、後で無効になったメソッドを呼び出しても機能しません。
注: 最後に注意してください。remove() メソッドなどの一部の DOM 操作メソッドも無効にする必要があります。これは、ユーザーが DOM 操作メソッドを使用して、最初にロードした JS ファイルを削除できるためです。