2

一種のばかげた状況...これは実際にはIE8以下のみです。

とにかく、iFrameが表示されます(これを制御/ IDを作成することはできません)。Telerikに感謝します。

// The only way I can grab it specifically would be:
var iframe = document.frames ? document.frames[id] : document.getElementById(id);
                                             // ^ you grab by ID in IE
var ifWin = iframe.contentWindow || iframe;

しかし、IDを持っていないため、このメソッドを使用できません...いくつかの異なるメソッドを試しましたが、成功しませんでした。

// tried either window. / or document.
document.frames.print();
window.frames.print();
document.frames[0].print();

基本的には、最初のiFrameをつかんで印刷します

補足window.print()IE8以下以外のすべてで動作します。IEの場合、現在フォーカスされているiFrameではなく、外部/親ウィンドウのコンテンツのみを印刷します。

何かご意見は?


更新:つまりwindow.frames[2].print()IEコンソールでの実行は機能します(そして正しいフレームを取得します)。このコードをJavascriptに入れようとすると、まったく同じことがわかります。IEはこのコードをドット表記window.frames[2].print()に解釈し、機能せず、nullまたはオブジェクトではないものとして返されます。同じドット表記をコンソールに入力しても機能せず、「Expected;」と表示されます。(これは意味がありません)。 window.frames.2

4

2 に答える 2

5

試しましたか

document.getElementsByTagName('iframe')[0]

私はこれをIE8コンソールでテストしましたが、動作します(ただし、アップデートで問題が発生する可能性があります)。

最初に表示されるiframeの印刷に関する質問の他の部分については、scrollXとscrollY、offsetTopとoffsetLeftを確認することをお勧めします。

于 2012-10-31T22:29:57.980 に答える
1

javascriptのこれらの古いコレクションのほとんどには、 *というメソッドitemがあるので、これを試してください。

window.frames.item(2).print();

(*)不思議に思わないでtypeof window.frames.itemください'object'

于 2012-10-31T22:28:07.233 に答える