相关疑难解决方法(0)

Chrome扩展程序 - 从弹出窗口传递到内容脚本的消息

我正在尝试将数据从弹出窗口传递到内容脚本,但我没有运气.我让它以相反的方式工作(内容 - >弹出窗口).我想要做的就是将文本输入到弹出窗口中的输入中,然后单击一个提交按钮,该按钮会将该文本插入到网页的dom中.

这就是我所拥有的:

popup.html

chrome.extension.sendRequest({action:'start'}, function(response) {
    console.log('Start action sent');  
});
Run Code Online (Sandbox Code Playgroud)

contentscript.js

function startExtension() { console.log('Starting Extension'); }

function stopExtension() { console.log('Stopping Extension'); }

function onRequest(request, sender, sendResponse) {
    if (request.action == 'start')
        startExtension()
    else if (request.action == 'stop')
        stopExtension()
    sendResponse({});
}

chrome.extension.onRequest.addListener(onRequest);
Run Code Online (Sandbox Code Playgroud)

javascript messaging google-chrome google-chrome-extension

12
推荐指数
1
解决办法
1万
查看次数

Addon SDK - 上下文菜单和页面修改工作者

我一直在研究与页面模块进行通信的上下文菜单,并遇到问题.

只要我不刷新页面,我就可以通过右键单击发送到页面/选项卡的通信.刷新页面时,将创建一个新工作程序,并且上下文菜单无法与工作程序通信.

我现在有两个相同的工人,但就像旧工人已过期一样.这意味着onMessage中的这个循环:不起作用,因为它拾取了第一个worker.

for (index = 0; index < workers.length; index += 1) {
    if (workers[index].tab.index === tabs.activeTab.index) {
    workers[index].port.emit("rightClick", string, ss.storage.product);
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直在寻找删除旧工人刷新,但似乎没有选择这样做.我从根本上错过了一些关于工人处理的事情吗?

我收到的错误是:错误:页面当前是隐藏的,在再次可见之前无法再使用.

这与以下事实是一致的:就工人而言,我现在正在查看同一选项卡中的新页面.我认为worker.on('detach',function(){})应该处理这个问题但似乎这只是关闭选项卡.

任何意见,将不胜感激.

稍微休息后添加 OK我决定使用其他地方推荐的detachWorker功能进行分离.我把它放在我的pageMod对象的顶部,如下所示

// Clean up duplicate worker
for (index in workers) {
    if(workers[index].url === worker.url && workers[index].tab.index === worker.tab.index) {
        detachWorker(workers[index], workers);
    }
}
Run Code Online (Sandbox Code Playgroud)

这解决了问题(暂时),虽然我不认为这是正确的方法.解决方案的任何进展:).

javascript firefox-addon-sdk

4
推荐指数
1
解决办法
1357
查看次数