I have a link which should open in a new tab, but if the tab is already open, just switch to it. I've tried with javascript, wnd = window.open() and than wnd.focus(), that works in Chrome 19, but not in FF 13 or IE 9. Here's the code I've written :
<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>
Any idea how can I open or switch to from every browser?
EDIT : I need to open the link in a new tab, not a stand-alone window.
Different browsers behave differently for window.open() and focus(). For this code window.open('www.sample.com','mywindow').focus()
Fiddle to test with: http://jsfiddle.net/jaraics/pEG3j/
You shouldn't need any logic for something like this. By default, specifying the second parameter for window.open()
gives the window a "name", that the browser remembers. If you try to call window.open()
with the same name (after it's already been opened), it doesn't open a new window...but you might still need to call .focus()
on it. Try this:
var a = window.open(url, "name");
a.focus();
Those should be the only lines of code in your function, and you don't need the loadingTableWnd
variable...
如果窗口已经打开,并且您想专注于该窗口,则可以使用
window.open('', 'NameOfTheOpenedWindow').focus();
If you are not interested in retaining the state of a previously opened tab, you can do this:
var loadingTableWnd;
function openOrSwitchToWindow(url) {
if (loadingTableWnd != undefined) {
loadingTableWnd.close();
}
loadingTableWnd = window.open(url,'myFrame');
}
window.focus()
is widely supported and seems to be working fine in both Internet Explorer and Firefox for me, the problem should be in your code. I've created a simple jsFiddle for you to test.
In Firefox 66 and Chrome 74 this works for me:
wnd = window.wnd && window.wnd.close() || window.open(url, "wnd");
Not tested in other browsers. Thanks to roberto (in the comment of the MarkZ answer) to point me on this solution. (I could not add a comment in that answer due my lack of reputation, sorry).
window.focus() solution was not fit my needs as this other one.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.