簡體   English   中英

如何在 Chrome 擴展程序中重定向當前標簽的 url?

[英]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. 讓內容腳本處理重定向。

在這兩種情況下,您都需要解決兩個問題:

  1. 溝通兩人之間的信息。 在方法 A 中,您需要從內容腳本中獲取關鍵字。 在方法 B 中,您需要告訴內容腳本要切換到哪個引擎。

    兩者都使用Messaging解決。 我建議使用chrome.tabs.sendMessage (並在方法 A 中響應)從彈出窗口向內容腳本發送消息,因為在另一個方向內容腳本不知道何時發送消息(彈出窗口可能已關閉)。

  2. 實際觸發變化。 在方法 A 中, chrome.tabs.update可以解決問題。 在方法 B 中,內容腳本可以更改window.location以導航離開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM