0

以下用于打开和关闭窗口的代码会引发 java 脚本错误“未找到成员”。这不会发生在所有机器上,但对于某些使用 IE 8 的用户。以下代码中的 winobject.blur() 会引发错误。

var winobject=null;   
winobject = window.open('URL','Name',"width=1,height=1,top=2000,left=2000");
if(winobject!=null){
    winobject.blur();
    self.resizeTo(screen.availWidth,screen.availHeight);
    winobject.close();
    ...
}

有什么帮助或建议来解决这个问题吗?

一些额外的观察 - 此问题仅在具有“名称”的窗口已经存在时发生。假设用户已经关闭了已经打开的弹出窗口,那么代码将运行良好。此外,如果我在当前窗口下再添加一个 window.open,则调用 blur() 时不会引发异常。不知道为什么?

4

1 回答 1

1

if (typeof winobject != "undefined")

我今天在工作中遇到了这样的问题。试试看,你应该很高兴。

编辑:

我已经找到以下链接似乎可以解释发生了什么。因为您是window自己创建的,所以 IE8 的“安全性”会阻止对其执行许多常见操作。

作为解决方法,我的下一个建议是同时包含winobject.blur()and winobject.close()withif (winobject.blur)if (winobject.close())条件句。请注意,后面没有括号blurclose请注意,在's 之后和if,因为您正在寻找方法的存在而不是调用方法。

不幸的是,我不确定您可以使用哪些替代方案来获得相同的效果。但这应该有望防止错误被抛出。

于 2013-02-08T00:43:53.690 回答