gpt4 book ai didi

javascript - 如何在 IE7 中获取对象元素的 contentWindow

转载 作者:行者123 更新时间:2023-12-02 20:38:55 24 4
gpt4 key购买 nike

我有一个像这样的 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>

我还有这个 javascript 函数(添加了alert()调用以进行调试):

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;
}
}

最后,此按钮用于打印 Object 元素的内容:
<input type="button" value="Print" name="printBtn"
onclick="getFrameByName(window,'resultIFrame').print();">

该按钮在 Firefox 中完美运行。Opera 已经足够好了,尽管它打印主文档而不仅仅是对象。IE7 给出以下错误详细信息:
线路:57 字符:1 错误:“未定义”为 null 或不是对象

第 57 行是按钮的“input”标记在 HTML 源代码中开始的位置。感谢alert('contentWindow is null')在 JS 函数中调用,我知道我在 IE 中获取的对象没有 contentWindow 属性。

我尝试更改 object标记到 iframe标签。这会改变 JS 行为,但会导致其他问题,例如 height属性被忽略并且内容不显示。
坚持object标签,如何在 IE7 中获取该对象的窗口?

最佳答案

如果您知道 iframe 的名称,则获取其窗口对象的最简单方法是调用 window.frames[frameName]。这将返回对窗口对象的引用,而不是 iframe

关于javascript - 如何在 IE7 中获取对象元素的 contentWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2816274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com