4

DOM ノードを「ルート」ページから、 を介して作成された新しいポップアップに移動しようとしていますwindow.open()。これが私が使用しているコードです。

var win = window.open('/Search/Print', 'printSearchResults'),
    table = $('#printTable');
win.document.close();
setTimeout(function () {
    var el = win.document.createElement("table");
    el.innerHTML = table.html();
    win.document.body.appendChild(el);
}, 40);

Chrome では動作しますが、IE8 では「不明なランタイム エラー」というエラーが表示されます。

私もこの方法で試しました:

var p = window.open('/Search/Print', 'printSearchResults'),
    table = $('#printTable');
setTimeout(function () {
    p.document.body.appendChild(table.clone(false)[0]);
}, 100);

このようにすると、IE8で「そのようなインターフェースはサポートされていません」と表示されます。繰り返しますが、Chrome は正常に動作します。

誰かが私が達成しようとしていることを行う方法を持っていますか?

完全を期すために、ポップアップ ウィンドウの HTML を次に示します。

<!DOCTYPE html>
  <html>
  <head>
      <title>Print Results</title>
  </head>
  <body>
  </body>
</html>
4

2 に答える 2

1

IE9(およびIE8 / 7ブラウザーモード)でコードをテストしました。

それ以外のel.innerHTML = table.html();

jqueryを使用する$(el).html(table.html());と問題が修正されました。

于 2012-08-09T13:03:53.277 に答える
1

iframe と新しいウィンドウを使用できるようにするには、それらに write() を実行する前に、addres: about:blank でそれらを初期化する必要があります。また、ウィンドウ/フレームのロード/オープンには時間がかかるため、すぐに書き込むことはできません。タイムアウトを設定するか、オンロードを確認してください。詳細については、この回答を参照してください。

幸運を!

于 2012-08-08T16:25:06.903 に答える