2011-08-01 26 views
9

Google Chromeの新しいタブでwindow.open()を使ってページを開きたいが、そのウィンドウを開いた後にフォーカスを得るのではなく、バックグラウンドに留める。window.openのフォーカスを妨げないようにする

これは可能ですか? Google Chromeでのみ動作する必要があります。また、Google Chrome拡張APIを使用することもできます。子供から

おかげ

答えて

9

適切な方法は、拡張APIを使用することです:

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

コードは、背景ページに配置する必要があります。あなたがコンテンツスクリプト内でそれを必要とする場合は、そのように、背景ページにメッセージを渡すことができます。

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

ちょうど私が必要でした。ありがとう! –

+1

これを行うすべての一般的な方法は、すべてのブラウザで動作するようにねえ? フォーカス機能が私のために働いていない –

+1

それはそれ以上動作しないようです –

-2

有効親ウィンドウまたは子が開かれた後、自己を活性化させます。

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

新しいウィンドウが表示されます。

2

の方法は、あなたが欲しいものを行うことができ、これを使用することにより

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(); 
    } 
} 

ので、すべてのブラウザでそこにあります。

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

クロムでは機能しません –

1

はいあなただけ使用することを行うことができますのみ)

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

はこれを試してみてください:(クローム上で確認

//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}); 
    } 
});