gpt4 book ai didi

javascript - 在 Add-on SDK 主附加脚本和 sdk/page-worker 脚本之间通信

转载 作者:行者123 更新时间:2023-11-30 16:20:04 25 4
gpt4 key购买 nike

我正在尝试在我的主要附加 SDK 脚本 index.js 和使用 sdk/page-worker 创建的页面 worker 中的脚本之间进行通信>。不幸的是,我遇到了问题。

我能够从我的主脚本与页面 worker 进行通信:在下面的代码中,我从 socket.on - console.log('new post' ) 从页面 worker 中的脚本触发。但是,主附加脚本看不到页面 worker 发送的消息。

HTML(worker.html):

<html lang="pl">
<head>
<meta charset="UTF-8">

<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script type="text/javascript">
var socket = io.connect('http://192.168.0.21:8081');
socket.on('newPost', function(data) {
console.log("new post");
//to this everything works ok!!!!!!!!!!!!
self.port.emit('newPost', "");
});
</script>
</head>
<body>

</body>
</html>

index.js 文件:

var buttons = require('sdk/ui/button/action');
var functions = require('./module.js');
var pageWorkers = require("sdk/page-worker");
var notifications = require('sdk/notifications');
var self = require("sdk/self");
functions.act.checkMsgsCount();

var pageWorker = pageWorkers.Page({
contentScriptWhen: "ready",
contentURL: self.data.url("worker.html")
});

pageWorker.port.on('newPost', function(data) {
console.log("sent newPost");
functions.act.newPostNotify();
});

buttons.ActionButton({
id: "main-bt",
label: "Start",
icon: {
"16" : "./icon-16.png",
"32" : "./icon-32.png",
"64" : "./icon-64.png"
},
onClick: functions.act.checkMsgsCount
});

最佳答案

worker.html 中,我必须更改 self.port.emit至:addon.port.emit .

因为我在 <script> 中的 HTML 文件中使用了一个脚本标签,我必须通过 addon 与主附加脚本通信对象。

关于javascript - 在 Add-on SDK 主附加脚本和 sdk/page-worker 脚本之间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com