我正在編寫Chrome擴展程序,並且在其中的一部分中,當點擊彈出頁面上的按鈕時,我需要獲取當前選項卡的標題和URL。Chrome擴展程序:從彈出窗口獲取當前選項卡
我曾經在Chrome的消息傳遞系統上工作過,經過很多努力,在很多場合下都設法使它工作。但是,我從來沒有必須使用彈出頁面,而且從我讀過的內容來看,這樣做要困難得多。
我已經設法找出迄今時間表是這樣的:
popup.html
/popup.js
: 按鈕被點擊popup.html
/popup.js
: 請求/消息被髮送到內容腳本contentScript.js
: 標題和在當前標籤的URL被存儲在可變contentScript.js
: 從彈出頁contentScript.js
接收 請求/消息 2個變量作爲字符串化的響應發送popup.html
/popup.js
: 的2個變量是從響應
平常我能想出解決辦法,但分析時,我讀過那些在作品中拋出一個扳手的幾件事情,例如:
chrome.tabs.getSelected
只能在後臺頁面/腳本中使用。這是否意味着內容腳本根本不需要使用?- 消息無法從內容腳本到彈出頁面直接發送,它們必須通過後臺頁面
- 一個彈出式窗口已經被確認爲存在之前的消息可以傳遞給它(雖然,我認爲去我知道如何做到這一點)
我已經發現Chrome的消息傳遞系統足夠困難,但是,這完全混淆了我。因此,這篇文章。
'鉻。 tabs.getSelected'被棄用(甚至沒有在文檔中列出)轉而支持'chrome.tabs.query'。我不確定'chrome.tabs.query'是否在彈出頁面中工作。 – Stan
你有什麼使用建議嗎? – mythofechelon
直到它的支持,您可以繼續使用'getSelected',或測試,如果'query'工作,特別是與清單第2版(第1版明年將停產)。作爲最後的手段,你可以在一個變量聽Chrome標籤'onCreated','onActivated'在你的背景頁,店面活動標籤的回報,比方說,在一個叫做'getCurrentTab'方法,然後從彈出就像調用它那:'chrome.extension.getBackgroundPage()。getCurrentTab()'。 – Stan