2015-11-28 24 views
0

我試圖打開一個新選項卡,然後在該新選項卡的上下文內執行內容腳本。我試圖做這樣的:如何獲得使用'chrome.tabs.create()'創建的選項卡的窗口對象?

chrome.tabs.create({ url: 'main.html' }, function(tab) { 
    chrome.tabs.executeScript(tab.id, { 
     code: 'console.log(window.name)' 
    }); 
}); 

但是,這似乎並沒有工作,有沒有什麼辦法,我可以直接到達我的新創建的選項卡的窗口對象(像chrome.extension.getViews({tabId: tab.id}))?

+0

的[新標籤中可以執行內容腳本 - 鉻的一些推廣]可能的複製(http://stackoverflow.com/questions/33845125/execute-content-script-within-new-tab-chrome-extentions) – wOxxOm

回答

0

我相信你所說的是屬於你的擴展的頁面。 內容腳本無法在Chrome的擴展頁面中注入,因此最佳選擇是將內容腳本作爲腳本包含在頁面中。

將一個<script>標記添加到頁眉,並在那裏運行代碼。

如果需要,您可以使用localStorage在加載之前將數據/值傳輸到頁面。

來源:

+1

事實證明,這裏有一個開放的功能請求(https://code.google.com/p/chromium/issues/detail?id = 72418)正是我要找的。不幸的是,它沒有得到實施的機會,所以我必須想出一些polyfill /解決方法。任何想法如何我可以實現這一點,將不勝感激! – umaximus

+0

這是一個重大的安全問題,我希望它不會被執行。至於解決方法,使用消息傳遞或localStorage將參數傳遞給頁面,並從內部執行代碼。請記住,您完全掌握了網頁.. – Selfish

相關問題