在新窗口中打开链接,或者聚焦到它(如果已经打开)
Open link in new window or focus to it if already open
我有一个链接应该在新选项卡中打开,但如果选项卡已经打开,只需切换到它。我尝试过javascript,wnd = window.open()和wnd.focus(),它们适用于Chrome 19,但不适用于FF 13或IE 9。这是我写的代码:
<script type="text/javascript">
var loadingTableWnd;
function openOrSwitchToWindow(url){
if(loadingTableWnd == undefined)
loadingTableWnd = window.open(url,'myFrame');
else
loadingTableWnd.focus();
}
</script>
<a href='javascript:openOrSwitchToWindow("/");' >Loading Table</a>
知道如何从每个浏览器打开或切换到吗?
编辑:我需要在新选项卡中打开链接,而不是独立窗口。
不同的浏览器对window.open()和focus()的行为不同。对于此代码window.open('www.sample.com','mywindow').focus()
- Chrome 20 会打开一个新标签页,并专注于后续的 open() 调用,无论是否调用 focus()。
- Firefox 13 会打开一个新选项卡,专注于第一个 open(),不关注后续的 open() 调用/忽略 focus()。
- IE 8 打开一个新窗口,Honors focus()。
- Safari 5 会打开一个新窗口,并专注于后续的 open() 调用,无论是否调用 focus()。
摆弄测试:http://jsfiddle.net/jaraics/pEG3j/
对于这样的事情,你不需要任何逻辑。默认情况下,为 window.open()
指定第二个参数会为窗口提供一个浏览器记住的"名称"。如果您尝试使用相同的名称调用window.open()
(在它已经打开之后),它不会打开一个新窗口......但您可能仍然需要致电.focus()
。试试这个:
var a = window.open(url, "name");
a.focus();
这些应该是函数中唯一的代码行,并且您不需要loadingTableWnd
变量...
如果窗口已经打开,并且您想专注于该窗口,则可以使用
window.open('', 'NameOfTheOpenedWindow').focus();
window.focus()
得到了广泛的支持,对我来说似乎在Internet Explorer和Firefox中都可以正常工作,问题应该出在您的代码中。我创建了一个简单的jsFiddle供您测试。
如果您对保留以前打开的选项卡的状态不感兴趣,可以执行以下操作:
var loadingTableWnd;
function openOrSwitchToWindow(url) {
if (loadingTableWnd != undefined) {
loadingTableWnd.close();
}
loadingTableWnd = window.open(url,'myFrame');
}
它将始终重定向到具有焦点的新选项卡:
const redirectBlank = function(url) {
return window.open(url, Date.now()).focus();
};
相关文章:
- 如果显示当前图像,则禁用链接
- 如果某个值在另一个节点中,我如何每秒自动单击一个链接
- 如果函数PHP中的条件为true,则禁用链接
- 如果URL's链接返回错误
- 用户单击带有哈希值的链接以访问该页面,如果禁用Javascript会发生什么情况
- 如果链接延伸到新行,则禁用链接上的左侧边框
- 在IE 7中,如果链接是使用jQuery创建的,如何获取链接的href属性的文字值
- 如果链接没有 href,则隐藏父 TR
- 如果链接少于 1 个,则计数和隐藏链接.Jquery.
- 如果链接链接到当前页面,则以该链接为目标
- 为什么在多次启动$.click()时,如果链接被单击一次,它会捕获它不止一次
- 如果链接是当前URL,如何将类添加到链接
- Xpages-Data表:如果链接具有特定的标签值,则单击链接上的事件
- 如果链接被加载,Ajax加载内容将不起作用
- addEventListener在点击li的时候-防止这个如果链接被点击在li里面
- 如果链接标记包含特定的字符串javascript,请删除该标记
- 如果链接中包含用户选择的文本,则获取链接
- 添加类如果链接有一个目标空白
- 提交时打开灯箱.如果灯箱关闭,提交表单.如果链接被点击,不要提交
- 如何删除链接或打开子元素,如果链接属性href包含字符串,我需要找到