ホームページ  >  記事  >  ウェブフロントエンド  >  page_javascript スキルで一部の JavaScript メソッドを無効にする具体的な実装

page_javascript スキルで一部の JavaScript メソッドを無効にする具体的な実装

WBOY
WBOYオリジナル
2016-05-16 17:27:441212ブラウズ

この記事で説明した方法は、そのようなニーズのあるプロジェクトに遭遇したことがないため、実際のプロジェクトには適用されていませんが、実験の結果、実現可能であることがわかりました。

1. 私のアイデアのソース

JavaScipt の利点は、Web ページの表現をより活発にすることです。しかし、近年の AJAX アプリケーションのブームにより、人々は JavaScript 小さな言語のアプリケーションにさらに注目するようになりました (多くのプログラマーは、JavaScript を言語とはみなしておらず、せいぜいスクリプトと呼ばれ、それに関与する人々を軽蔑することさえあります)スクリプトで)。現在、多くのブログ公式 Web サイトではスクリプトのアクセス許可が公開されており、ユーザーがスクリプトをカスタマイズして自分のスペースを充実させることができます。特に一部の技術ブログや専門ブログでは、かなりリラックスした開発環境が提供されています。しかし、多くのブログが特定のスクリプト メソッドを制限していることもわかりました。ここで話しているのは部分的な制限であることに注意してください。完全な制限の場合は、<script> スクリプト ブロックを除外するだけです。しかし、部分的な制限はどのように実現されるのでしょうか。 <br><br>これまでのプロジェクトではそのような問題に遭遇したことがなかったので、最初はあまり深く調査せず、感覚に基づいて「置き換え」方法を使用することを考えました。何か問題が発生する可能性があるため、そのようなアプローチは明らかに機能しません。たとえば、アラート メソッドを無効にしたい場合は、次のコードがあります。 <BR><div class="codetitle"><span><a style="CURSOR: pointer" data="67741" class="copybut" id="copybut67741" onclick="doCopy('code67741')"><U>コードをコピー コードは次のとおりです。 : <div class="codebody" id="code67741"> <BR>window.alert('Some message'); <BR> <BR>ここで、上記のコードを無効にするには、たとえば、アラートをすべて大文字に変更します。 ALERT。スクリプト エラーが確実に報告されますが、try{}catch{} を使用して ALERT を含めることはできますが、これは無効な言語パッケージの識別にとって大きな問題であり、そのようなエラーも発生します: document .write('alert 一部のメッセージ内のアラート'); も置き換えられました。 <br><br>その後、メソッドを書き換えて無効にして何も行わないようにすることを考えましたが、それが本当に実現可能であることがわかりましたが、それが私が思いついた方法であるかどうかはわかりませんでした。一緒に話し合いましょう。 <br><br><STRONG>2. 具体的な実装 <br><br>まず、「alert」メソッドと「write」メソッドを無効にする次のコードを確認してください: <BR><div class="codetitle"> <span><a style="CURSOR: pointer" data="59455" class="copybut" id="copybut59455" onclick="doCopy('code59455')"><U>コードをコピー コードは次のとおりです:<div class="codebody" id="code59455"> <BR>window.alert=function(){} <BR>document.write=function( ) {} <br><br>window.alert('Alert some message'); <BR>document.write('Write some message'); <BR> <BR>実際のアプリケーションでは、最初の 2 行を個別に抽出して外部 JS ファイルに保存し、JavaScript メソッドをフィルタリングする必要があるページにこの JS ファイルを最初にロードします (ユーザーがコンテンツ ブロックを編集する前にこのスクリプトを行にロードすることもできます)。 HTML ブロックでは、管理者または Web ページ作成者は無効になるメソッドを引き続き使用できるため、無効になったメソッドを後で呼び出しても機能しません。 <br><br><STRONG>注: 最後に、ユーザーは最初にロードした JS ファイルを削除するために DOM 操作メソッドを使用できるため、remove() メソッドなどの一部の DOM 操作メソッドを無効にしてください。</script>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。