3

サーバー側 (nodejs+phantomjs) で完全にレンダリングされる Web ページがあり、このページをクライアント ブラウザーに送信したいと考えています。問題は、クライアント ブラウザが JavaScript を再実行しようとすることです。したがって、次の 2 つのオプションがあります。

  1. クライアントでそのページをロードする iframe で JavaScript を無効にします
  2. すべての JavaScript および js 呼び出し/イベントをページから取り除きます

ページの元の JavaScript は使用しませんが、後で iframe に JavaScript イベントを追加できるようにする必要があります。

最初のオプションは、iframe の「サンドボックス」引数を使用して実現できるようですが、後で他の JavaScript を挿入できなくなります。したがって、2 番目のオプションを実現する方法、つまりページから元の JavaScript をすべて削除する方法が必要です。

そうするための効率的な(そして信頼できる)方法はありますか?正規表現を使用することで解決できると思いますが、信頼できますか?

4

1 に答える 1

4

機能しているように見える解決策を見つけました。それが最善の解決策かどうかはわかりませんが、ドキュメントから JS 参照を手動で削除するよりも確実に優れています..私の目的のために。

ここにトリックがあります:ハイジャックjs!私は<head>次のように追加しています:

<script>
    Function.prototype.call = function(){}; 
    Function.prototype.apply = function(){};
    Function.prototype.bind = function(){};
</script>"

JavaScript が無効になっています。

于 2013-06-20T18:39:50.927 に答える