2012-12-26 81 views
4

我正在編寫一個Chrome擴展程序,允許用戶從單個頁面登錄到社交媒體網站。我可以創建一個新的隱身窗口,但無法操作我創建的窗口內的任何內容。我想爲新窗口創建一個onload函數來執行jquery。感謝您讓我指出正確的方向!如何操作Chrome擴展程序中的新窗口?

+1

你有沒有嘗試腳本注入回調標籤創建/更新()? – Sudarshan

+0

我還沒有,但我不知道從哪裏開始。你可以指點我的任何好資源? –

+2

如果你想操縱隱身,你必須要求用戶在設置 – gengkev

回答

6

請參考下面的演示操縱新建的隱身window創建並注入了一些jquery。

References

manifest file

這是用來綁定許可和註冊後臺網頁以extension.Ensure它具有所需的所有權限。

{ 
"name":"Hanlder for Incognito window", 
"description":"http://stackoverflow.com/questions/14044338", 
"version":"1", 
"manifest_version":2, 
"background":{ 
    "scripts":["background.js"] 
}, 
"permissions":["tabs","http://www.google.co.in/"] 
} 

background.js

jQuery注入新的隱身窗口,從背景頁。

var _tabId_To_Look_For; 

// Create a new incognito Window with some arbitary URL and give it focus 
chrome.windows.create({ 
    "url": "http://www.google.co.in/", 
    "focused": true, 
    "incognito": true 
}, function (window) { 
    // Trace tab id which is created with this query 
    _tabId_To_Look_For = window.tabs[0].id 
}); 

// Add an event Listener for new tab created 
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { 
    // Inject script into chosen tab after it is loaded completely 
    if (tabId == _tabId_To_Look_For && changeInfo.status == "complete") { 
     // Inject Jquery and in current tab 
     chrome.tabs.executeScript(tabId, { 
      "file": "jquery.js" 
     }, function() { 
      // I am in call back 
      console.log("Injected some jquery "); 
     }); 
    } 
}); 

確保您已啓用隱身訪問權限。

enter image description here

Output

您會發現使用jQuery的新窗口注入。

+1

今天我剛學會如何使用'file'選項將腳本注入標籤,謝謝! – jjperezaguinaga

+0

太棒了!謝謝! –

相關問題