在做弹出IE窗口刷新父窗口的页面时,发现使用
window.opener.location.href=window.opener.location.href
语句并不是每次都起作用,有时候父窗口对该语句无动于衷,但跟踪代码发现,该语句确实已经执行。
window.opener.location.href=window.opener.location.href
语句并不是每次都起作用,有时候父窗口对该语句无动于衷,但跟踪代码发现,该语句确实已经执行。
上网搜索,无果,只能自己来查找事情的真相。通过逐个页面测试,我发现了一个规律,父窗口弹出窗口的链接如果是超链接形式,则该条语句一定无效,而使用button方式的则有时有效有时无效。
多年的代码告诉我,代码错,结果就要全错,不确定的错误一般不是当前代码的错误(即隐藏BUG的问题)。就在我努力思索到底哪里会影响该语句执行的时候,浏览器里一个“#”号引起了我的注意,是真是假,亲自试一下才知道。
经过逐个对比,我最终发现,凡是父窗口地址栏中带有“#”号的页面,上述刷新代码均不起作用。而我的页面中,超链接形式的按钮为了避免出现[Object],href属性都设置为了“#”号,而正是这个符号,使从该超链接弹出的窗口无法正常刷新父窗口。而使用到button的页面,则是因为其中混合了超链接形式,使父窗口的URL中带有了“#”号,从而使上述代码失效。
将所有的超链接形式按钮更换成button形式,问题顺利解决。