2011-08-01 16 views
9

Google Chrome'da window.open() ile yeni bir sekmede sayfa açmak istiyorum, ancak açıldıktan sonra bu pencerenin odaklanmasını istemiyorum, ancak arka planda kalmak istiyorum .window.open'in odaklanmasını önleme

Bu mümkün mü? Sadece Google Chrome'da çalışmak zorunda. Google Chrome uzantı API'sını da kullanabilir. Çocuk açıldığında

Teşekkür çocuktan

cevap

9

uygun yolu uzatma API kullanmak olacaktır. Bir içerik komut dosyası içine gerekiyorsa bunu gibi bir arka plan sayfasına bir mesaj iletebilirsiniz:

//content script 
chrome.runtime.sendMessage({link: link}); 

//background page 
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { 
    if(message.link) { 
     chrome.tabs.create({url: link, selected: false}); 
    } 
}); 
+0

Tam ihtiyacım olan şey. Teşekkürler! –

+1

hey, tüm tarayıcılar için çalışacak şekilde yukarıdaki herhangi bir genel yol var mı? Odak işlevi çalışmıyor –

+1

artık işe yaramıyor gibi görünüyor –

-2

etkinleştirin ebeveyn penceresi veya kendini aktif hale getirin.

2
window.open(url, name, features); 
window.focus(); 

Kısa bir süre için yeni pencereyi göreceksiniz.

2

bir yolu istediğiniz her şeyi yapabilir bu kullanarak

function openURL(url, opt){ 
    if (opt == 0){ // current window 
    window.location = url; 
    }else if (opt == 1){ // new window 
    window.open(url); 
    }else if (opt == 2){ // background window 
    window.open(url); self.focus(); 
    } 
} 

yüzden tüm tarayıcıda yoktur çıktı.

chrome.tabs.create({url: "http://...", selected: false}); 

Kod arka plan sayfasında yer edilmelidir:

openURL("http://www.google.com", 0) --> open in same window 
openURL("http://www.google.com", 1) --> open in new window 
openURL("http://www.google.com", 2) --> open in new window but in background. 
+6

kromda çalışmıyor –

1

Evet bunu yapabilir sadece kullanın:

var myWindow = window.open(url,name,features); 
myWindow.blur(); 
0

bu deneyin: (krom işaretli yalnızca

var myWindow = window.open(url,name,features); 
window.open().close();