1

少し奇妙なリクエストですが、親ウィンドウを作成できるようにしたいと思います。

  • 同じドメインに新しい子ウィンドウを作成します(を使用してwindow.open
  • 子ウィンドウでJavaScriptが実行されないようにする

現在、ページの最上部に以下を含めることで、子ウィンドウ内でこれを行うことができます。

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

これにより、子ページのJavaScriptの実行がほぼ停止します。しかし、親ウィンドウからこれを行う方法はありますか?スクリプトを実行する前に、どういうわけかこのコードを子ページに挿入できますか?

または、これを行う他の方法はありますか?

助けていただければ幸いです

4

3 に答える 3

2

サーバー側のビットを使用して、すべての<script>タグとのようなインラインイベントハンドラーを削除できますonclick

編集

クライアント側を使用すると、ajaxを使用してページ全体を取得し、そこにあるスクリプトを削除して、新しく作成されたウィンドウにコンテンツを書き込むことができます。使えないと思います

$.get('page.html', function(html) {
    var html = $(html).find('script').remove().html();
});

スクリプトはDOMに追加されたときに実行される可能性があるため、パーサーまたは正規表現のみを使用する必要がある場合があります。

于 2013-03-12T20:07:09.120 に答える
2

window.open()新しく作成されたウィンドウへの参照を返します。ウィンドウが同じ原点にある場合は、自由にアクセスできます。

var popup = window.open('/some/page.html');
popup.contentWindow // = the popup's `window` object

ただし、思いついたコードは機能しませんcallとを自由に使用するjQueryを壊すのを見たことがあるかもしれapplyませんが、通常の関数呼び出しを停止することはできません。

于 2013-03-12T20:35:02.477 に答える
0

子ウィンドウがiframe?にある場合 そのような質問がありました、そして答えは-あなたはphpサーバーサイドでこれを簡単に行うことができないということでした。

iframeでスクリプトを無効にするにはどうすればよいですか?

于 2013-03-12T20:10:09.883 に答える