我用window.open(...)
打开了一个小的弹出引用窗口,并给它起了一个名字。当后续的window.open
被调用时,它可以被正确地重用。
function openHelp(hash) {
var helpWindow = window.open(location.protocol + "/help.aspx" + (hash ? "#" + hash : ""), "helpWindow", "width=750, height=600, resizable=1, scrollbars=1, location=0, directories=0, status=no, menubar=no, toolbar=no");
}
它不能正常工作的一种情况是当有人在帮助页面url打开窗口时,只有哈希值改变(即#jump-to-me
).只有在页面重新加载时,页面才能正确地转到哈希值.
有没有办法找到打开的窗口,检查URL是否匹配我们试图打开的内容,并在哈希值改变时有条件地执行window.location.refresh()
?
3条答案
按热度按时间mzillmmw1#
如果我猜对了,你就可以开始了。
我希望这是一个很好的答案。
bsxbgnwa2#
浏览器不会重新加载窗口,如果只有材料后的哈希变化.
我发现在哈希之前添加一个随机查询参数会强制它重新加载底层页面:
在我的例子中,hash作为唯一值工作得很好(在任何意义上,它都不必是“唯一的”,只要它在hash发生变化时发生变化即可)。
new9mtju3#
差不多了,只需要在
hashchange
事件的特定窗口上添加一个事件侦听器。