Chrome扩展:如何响应从"弹出"在内容脚本中
Chrome extension: How to respond to the action from "popup" in the content script?
我想创建一个扩展,将在社交网络中切换音乐播放的状态。我有一个按钮'播放/暂停'在一个弹出窗口。html,我已经注入到每个页面的脚本(注入.js,内容脚本)。当有人点击pop .html中的"播放/暂停"时,社交网络的页面必须调用headPlayPause()函数,但它不起作用。我该怎么做才能修好它?
popup.html:
<script src = 'popup.js'></script>
<input type = 'button' value = "Play/Pause" id = 'stopper' />
popup.js:
window.onload = function() {
document.getElementById('stopper').onclick = function() {
// i don't know how correctly get tabId
chrome.tabs.sendMessage(241, { greeting: "hello" },
function(res) {
// returns "sendMessage callback.. undefined"
alert('callback of sendMessage: ' + res)
});
}
}
injection.js:
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
headPlayPause();
}
);
对不起我的英语:)
使用chrome.tabs.query
({active:true, currentWindow: true}, callback);
获取当前标签ID:
document.getElementById('stopper').onclick = function() {
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
var tabId = tabs[0].id; // A window has only one active tab..
chrome.tabs.sendMessage(tabId, { greeting: "hello" },
function(res) {
alert('callback of sendMessage: ' + res);
}
});
});
};
要获得合理的响应,您必须调用第三个参数(sendResponse
):
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
// Send a response back. For example, the document's title:
sendResponse(document.title);
}
);
您可以在消息传递教程中阅读更多关于在扩展内发送消息的信息。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- Javascript排序的图像弹出窗口..可以't单独弹出
- 弹出窗口出现,然后退出
- 从信息框调用弹出图像库
- 离开页面时弹出消息
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- 新选项卡被弹出窗口阻止程序阻止
- 自动关闭弹出窗口的Javascript
- 将JavaScript弹出菜单转换为警报框
- 显示放大镜弹出窗口时隐藏导航内容
- IE7和Javascript“;出现错误“;弹出窗口
- jQuery Facebox插件:关注弹出的外观
- IE 11没有显示“;显示内容"弹出消息
- 块”;你想记住这个密码吗"firefox中的弹出窗口
- 华丽的弹出窗口:获得"无法加载图像“;并且图像url未定义
- "消息发送”;PHP和JS的确认弹出窗口
- "风格"显示AJAX弹出窗口(vb.net)时出错
- 为什么要用"立即:false”;不会't关闭弹出窗口并启动回调
- Javascript:抑制"此页面要求您确认是否要离开“;在加载前弹出
- 为什么chrome显示弹出警告:;您所做的更改可能尚未保存"在每个页面出口