2014-03-19 101 views
0

我正在維護一個遺留應用程序,它試圖在回發事件期間動態加載一些javascript。 javascript有一行嘗試打印包含加載javascript的頁面的iFrame。換句話說,窗口具有iFrames的層次結構(我知道是一場噩夢)。我的代碼是在一個asp.net頁面中加載的id爲'main'的iFrame中。所以,下面的代碼在Firefox中沒有任何問題:找不到跨iFrame打印的跨瀏覽器解決方案

parent.frames['main'].print(); 

但是,我似乎無法找到能讓IE打印的魔法咒語。我曾嘗試在上一行之前添加此行:

parent.frames['main'].focus(); 

但是,這沒有效果。下面是層次結構的簡化表示:

<page> 
    <frameset> 
     <frame id='content'/> 
     <frameset> 
      <frame id='menu'/> 
      <frame id='main'/> 
     </frameset> 
    </frameset> 
</page> 

我已經看到了很多的東西這個在網絡上,但一直沒能得到任何他們的整個IE,FF工作。

我使用IE 10和FF 28

感謝你可以給任何意見。我在這方面浪費了太多時間。

+0

http://stackoverflow.com/questions/9616426/javascript-print-iframe-contents-only –

+0

我試圖parent.window.frames [ '主']打印()中,用。沒有運氣(我試過它之前的「焦點」聲明)。因爲我知道完整的層次結構,我決定嘗試window.top.frames ['main']。print(),當然,它在FF中工作,但不是IE,我也試過window.top.frames ['main'] .contentWindow.print(),沒有運氣。我無法列出所有我嘗試過的變體,但我想我已經嘗試過了。啊。 (爲了清楚起見,'main'嵌套在邊框框架中,但沒有其他框架,所以window.top.frames ['main']即使主要嵌套幾層也可以工作)。 – rogdawg

回答

0

好的。神奇的咒語是:

window.parent.frames [0] .print();

這似乎工作在IE和FF。有趣的是,window.parent.frames ['main']。print()在IE中不起作用。

好的。所以,那是我一生中永不回頭的一天。

: -/

相關問題