[英]How to fetch URL of current Tab in my chrome extension using javascript
[英]How to redirect current tab's url in Chrome extension?
我正在編寫一個 Chrome 擴展程序,用於在不同的搜索引擎之間切換。 manifest.json
看起來像:
{
"browser_action": {
"default_popup": "popup.html"
},
"permissions": [
"tabs",
"activeTab"
],
"content_security_policy": "script-src 'self'; object-src 'self'",
"content_scripts": [{
"matches": ["*://*.baidu.com/*"],
"js": ["content.js"]
}]
}
content.js
用於獲取用戶在搜索中的關鍵字。popup.html
包含支持的搜索引擎列表。當用戶在彈出窗口中單擊搜索引擎的圖標時,我需要使用所選的搜索引擎用戶將當前選項卡重定向到新的 url。
現在我可以得到關鍵字。 問題是:如何將當前標簽重定向到新的 url?
參見chrome.tabs.update
,您可以通過以下代碼更新當前選項卡的 url
chrome.tabs.update({url: "http://www.baidu.com"});
考慮到您從內容腳本中獲取關鍵字,並希望在用戶單擊彈出頁面中的某個按鈕后重定向 url,您可能需要消息傳遞或chrome.storage在內容腳本和彈出頁面之間共享關鍵字。
有兩種可能的方法:
A. 讓彈出窗口處理重定向。
B. 讓內容腳本處理重定向。
在這兩種情況下,您都需要解決兩個問題:
溝通兩人之間的信息。 在方法 A 中,您需要從內容腳本中獲取關鍵字。 在方法 B 中,您需要告訴內容腳本要切換到哪個引擎。
兩者都使用Messaging解決。 我建議使用chrome.tabs.sendMessage
(並在方法 A 中響應)從彈出窗口向內容腳本發送消息,因為在另一個方向內容腳本不知道何時發送消息(彈出窗口可能已關閉)。
實際觸發變化。 在方法 A 中, chrome.tabs.update
可以解決問題。 在方法 B 中,內容腳本可以更改window.location
以導航離開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.