javascript - html 在新目标和焦点上打开一个 url

标签 javascript html

我正在尝试修复网站。

它通过 <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/

相关文章:

javascript - 数据访问 JS 函数

javascript 返回上一个事件 div

javascript - 使用javascript更改div的高度

javascript - 输入范围 slider 步骤

javascript - 汉堡侧边栏 - 隐藏点击之外

html - 如何设置 html 选择标签箭头的样式?

javascript - 如何使用 "fixed" header 使 anchor 标记直接指向页面上的正确位置?

javascript - 在 Backbone.fetch() 中寻找一些代码的解释

html - SCSS : How to combine @for with @each?

html - "Exclude text from blending"CSS 混合