zhm*_*zhm 4 javascript google-chrome google-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"]
}]
}
Run Code Online (Sandbox Code Playgroud)
content.js 用于在搜索中获取用户的关键字。 popup.html 包含受支持的搜索引擎的列表。当用户在弹出窗口中单击搜索引擎的图标时,我需要使用选定的搜索引擎用户将当前选项卡重定向到新的url。
现在我可以得到关键字了。问题是:如何将当前选项卡重定向到新的URL?
请参阅chrome.tabs.update,您可以通过以下代码更新当前标签页的网址
chrome.tabs.update({url: "http://www.baidu.com"});
Run Code Online (Sandbox Code Playgroud)
考虑到您是从内容脚本中获取关键字的,并且想要在用户单击弹出页面中的某些按钮后重定向URL,因此可能需要Message Passing或chrome.storage在内容脚本和弹出页面之间共享关键字。
有两种可能的方法:
答:让弹出窗口处理重定向。
B.让内容脚本处理重定向。
在这两种情况下,您都需要解决两个问题:
在两者之间交流信息。在方法A中,您需要从内容脚本中获取关键字。在方法B中,您需要告诉内容脚本要切换到哪个引擎。
两者都使用Messaging解决。我建议使用chrome.tabs.sendMessage(并在方法A中进行响应)将消息从弹出窗口发送到内容脚本,因为在另一个方向上,内容脚本不知道何时发送消息(弹出窗口可能已关闭)。
实际触发更改。在方法A中,可以chrome.tabs.update做到这一点。在方法B中,内容脚本可以更改window.location以导航。
| 归档时间: |
|
| 查看次数: |
3265 次 |
| 最近记录: |