2014-09-19 57 views
0

當用戶更改選擇下拉列表的值時,我正在使用JavaScript將網址加載到_blank頁面。在「選擇」更新新標籤打開網址...只有一次

urlmenu.onchange = function() { 
    window.open(this.options[ this.selectedIndex ].value, '_blank'); 
}; 

但我只希望腳本打開一個新的標籤一次,如果他們再次更改打開他們以前打開的標籤中的新頁面。

+0

維護一個國旗呢? – 2014-09-19 07:48:47

+0

你可以給旗幟更多的反饋嗎? – Denoteone 2014-09-19 07:52:54

+0

檢查示例。 – 2014-09-19 09:45:17

回答

1

您可以檢查窗口是否打開或不使用窗口

urlmenu.onchange = function() { 
     if (typeof(ref) != 'undefined') { 
     ref.location = this.options[ this.selectedIndex ].value; 
     } else { 
     ref = window.open(this.options[ this.selectedIndex ].value, '_blank'); 
     } 
    }; 
1

的第二個參數應該是新創建的窗口(_blank你的情況)的名稱的參考。它用於HTML target屬性中,用於引用JS中的彈出窗口來檢查,如果window.open()應該打開一個新的窗口/選項卡或重新加載現有的窗口。

要打開每個呼叫的新選項卡,請使用例如時間戳創建唯一的窗口名稱。要在同一選項卡中打開所有新頁面,請給窗口一個常數名稱。

1
var isOpen = false; 

if(!isOpen){ 
    urlmenu.onchange = function() { 
     window.open(this.options[ this.selectedIndex ].value, '_blank'); 
    }; 
    isOpen = true; 
} 

試着用這個,希望我理解正確。

相關問題