我正在尝试修复网站。
它通过 <a href="..." target="help">
在新窗口/选项卡中打开帮助页面(没有其他框架有这个名字)
第一次打开新窗口/标签时效果很好,求助。 但是在随后的点击中,窗口/选项卡被加载但仍然隐藏。
我试过这个:
<script>
function OpenAndFocusHelp() {
win=window.open('help/1000CH00017.htm','help');
win.focus();
}
</script>
<a href="help.html" target="help"
onclick="OpenAndFocusHelp()">Help</a>
没用!
最佳答案
现代浏览器似乎不允许您window.focus
现有窗口。或者至少,它不会给那个窗口焦点。 (IE9 实际上会闪烁选项卡,但大多数其他浏览器只是加载它,但不会指示应将用户的注意力吸引到新窗口。)
因此,一种解决方案是先关闭窗口,然后立即重新打开它。例如,declare the following function :
window.openOrFocus = function(url, name) {
if (!window.popups)
window.popups = {};
if (window.popups[name])
window.popups[name].close();
window.popups[name] = window.open(url, name);
}
现在,您可以编写如下 HTML:
<a href="javascript:void(0);" onclick="openOrFocus('http://jsfiddle.net/k3t6x/2/', 'window1')">Window 1</a><br />
<a href="javascript:void(0);" onclick="openOrFocus('http://jsfiddle.net/KR6w3/1/', 'window2')">Window 2</a><br />
由于它首先关闭窗口,因此它可靠地将焦点提供给新创建的子窗口。
此解决方案还使用 window.popups
命名空间,因此如果您有一个名为 popups
的函数或有其他名称,请重命名 javascript 示例中的用法与它相撞。
警告:这在回发后不起作用。这是因为一旦您离开当前页面,它就不再是子窗口的所有者。因此,它无法再关闭它们。但是,它只会退化为使用 target
属性的通常(非聚焦)行为。
测试:Firefox 4、Chrome 11、IE 9
JsFiddle 演示: http://jsfiddle.net/aqxBy/7/
关于javascript - html 在新目标和焦点上打开一个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4546528/