myt*_*lon 31 javascript message google-chrome
我正在编写Chrome扩展程序,在其中的一部分中,我需要在单击弹出页面上的按钮时获取当前选项卡的标题和URL.
我以前曾经使用过Chrome的消息传递系统,并且经过多方努力,很多时候都设法让它运行起来.但是,我从来没有必要在弹出页面上使用它们,而且从我读过的内容来看,这样做要困难得多.
到目前为止,我设法弄清楚的时间表是这样的:
popup.html/ popup.js:单击按钮popup.html/ popup.js:请求/消息被发送到内容脚本contentScript.js:从弹出页面接收请求/消息contentScript.js:当前选项卡的标题和URL存储在变量中contentScript.js:2个变量作为字符串化响应发送popup.html/ popup.js:从响应中解析出2个变量通常我会想到这一点,但是,我已经阅读了一些在工作中抛出扳手的东西,例如:
chrome.tabs.getSelected只能在后台页面/脚本中使用.这是否意味着根本不需要使用内容脚本?我已经发现Chrome的消息传递系统很难,但这让我很困惑.因此,这篇文章.
fny*_*fny 70
chrome.tabs.getSelected已弃用.你应该使用chrome.tabs.query.
chrome.tabs.query 需要两个参数:查询对象和回调函数,它将结果选项卡数组作为参数.
您可以通过查询当前处于活动状态且位于当前窗口中的所有选项卡来获取"当前选项卡".
var query = { active: true, currentWindow: true };
Run Code Online (Sandbox Code Playgroud)
由于查询将返回仅包含当前选项卡的Tab数组,因此请务必获取回调中的第一个元素
function callback(tabs) {
var currentTab = tabs[0]; // there will be only one in this array
console.log(currentTab); // also has properties like currentTab.id
}
Run Code Online (Sandbox Code Playgroud)
Etvoilà:
chrome.tabs.query(query, callback);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16625 次 |
| 最近记录: |