得到contentWindow的對象元素我有這樣的HTML對象元素:
<object title="Search results as XML" standby="Loading XML document..." type="text/xml" data="/__CA25761100195585.nsf/WebPrintListingXML?OpenAgent&date1=01/06/2009" width="100%" height="100%" border="0" name="resultIFrame" id="resultIFrame"> Error: could not embed search results. </object>
我如何在IE7
我也有這樣的JavaScript函數(警報()調用添加用於調試):
function getFrameByName(fParent,fName)
{
var fArray=fParent.frames;
if (!fName) return;
if (fArray) {
if (fArray.length) {
for (var i=0; i<fArray.length; i++) {
alert('loop '+i);
if (fArray[i]) {
if (fArray[i].name==fName) return fArray[i];
}
}
}
}
var tmp=document.getElementsByName(fName);
if (tmp[0]) {
alert('returning '+tmp[0]);
if (!(tmp[0].contentWindow)) alert('contentWindow is null');
return tmp[0].contentWindow;
}
}
最後,這個按鈕是爲了打印對象元素的內容:
<input type="button" value="Print" name="printBtn" onclick="getFrameByName(window,'resultIFrame').print();">
按鈕完美的作品在Firefox中。 Opera雖然打印主文檔而不是僅打印對象,但Opera足夠好。 IE7提供了以下錯誤信息:
行:57 字符:1個 錯誤:「未定義」爲空或不是對象
57行是按鈕的「輸入」標籤中的HTML源開始。 感謝在JS函數中調用alert('contentWindow is null')
,我知道我在IE中獲得的對象沒有contentWindow屬性。
我曾試圖改變object
標籤的iframe
標籤。這會更改JS行爲,但會導致其他問題(如height
屬性被忽略並且內容不顯示)。
堅持用object
標記,我怎樣才能得到這個對象的窗口在IE7中?
當「iframe」實際上是'object'標記時,window.frames在IE7中不起作用。 – 2010-05-20 01:12:28
我完全錯過了使用iframe的對象標籤的事實。但是,我只是在IE7模式下使用IE8進行測試,它工作。 我通過http://intranation.com/test-cases/object-vs-iframe/添加了一個名稱=「ifrm」給對象標籤,然後使用控制檯檢查我確實可以設置window.frames.ifrm.location =「http://www.google.com」 – 2010-05-21 15:54:56