Google Chromeの新しいタブでwindow.open()を使ってページを開きたいが、そのウィンドウを開いた後にフォーカスを得るのではなく、バックグラウンドに留める。window.openのフォーカスを妨げないようにする
これは可能ですか? Google Chromeでのみ動作する必要があります。また、Google Chrome拡張APIを使用することもできます。子供から
おかげ
Google Chromeの新しいタブでwindow.open()を使ってページを開きたいが、そのウィンドウを開いた後にフォーカスを得るのではなく、バックグラウンドに留める。window.openのフォーカスを妨げないようにする
これは可能ですか? Google Chromeでのみ動作する必要があります。また、Google Chrome拡張APIを使用することもできます。子供から
おかげ
適切な方法は、拡張APIを使用することです:
chrome.tabs.create({url: "http://...", selected: false});
コードは、背景ページに配置する必要があります。あなたがコンテンツスクリプト内でそれを必要とする場合は、そのように、背景ページにメッセージを渡すことができます。
var myWindow = window.open(url,name,features);
myWindow.blur();
有効親ウィンドウまたは子が開かれた後、自己を活性化させます。
window.open(url, name, features);
window.focus();
新しいウィンドウが表示されます。
の方法は、あなたが欲しいものを行うことができ、これを使用することにより
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.
クロムでは機能しません –
はいあなただけ使用することを行うことができますのみ)
var myWindow = window.open(url,name,features);
window.open().close();
はこれを試してみてください:(クローム上で確認
//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});
}
});
ちょうど私が必要でした。ありがとう! –
これを行うすべての一般的な方法は、すべてのブラウザで動作するようにねえ? フォーカス機能が私のために働いていない –
それはそれ以上動作しないようです –