都是“#”号惹得祸――URL中“#”号导致无法刷新页面问题

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

 

标签:
文章分类 FK Coding

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计