我的插件和脚本中有一个带有脚本和 jQuery 的面板,该面板运行到页面中。 如何将对象从面板复制到页面?
main.js
var tabs = require("sdk/tabs");
var self = require("sdk/self");
var button = require("sdk/ui/button/action").ActionButton({
id: "show-panel",
label: "Show Panel",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
var panel = require("sdk/panel").Panel({
contentURL: self.data.url("page.html"),
contentScriptFile: [self.data.url("jquery-2.1.1.min.js"), self.data.url("panel-script.js")],
position: button
});
function handleClick() {
panel.show();
var worker = tabs.activeTab.attach({
contentScriptFile: [self.data.url("jquery-2.1.1.min.js"), self.data.url("page-script.js")]
});
panel.port.emit('to-panel');
panel.port.on("from-panel", function(pic) {
worker.port.emit("to-page", pic);
});
}
面板.html
<html>
<head>
</head>
<body>
<img src="icon-64.png" class="add-img" alt="">
<button class="click">Click Me!</button>
</body>
</html>
面板.js
self.port.on("to-panel", function() {
var pic = $('.add-img');
$('button.click').on('click', function(){
self.port.emit("from-panel", pic);
});
});
页面.js
self.port.on("to-page", function(pic) {
$('body').append(pic);
});
我想从面板复制元素并将其放置到页面。 我尝试将其设置为名为“pic”的变量并传输到 page.js 以放置在网页上,但它不起作用。尽管如此,简单的字符串很容易传输并放置在页面上。
浏览器控制台显示“TypeError:a 未定义”。
请帮忙,抱歉英语不好。
最佳答案
var myobjStr = JSON.stringify(myObj)
面板中的对象。然后将其转换为字符串。现在将该字符串传递到您的页面,然后在粘贴中像这样解析它:
var myobjFromStr = JSON.parse(myobjStr)
关于jquery - 如何在 Firefox 插件中的脚本之间移动 jQuery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578471/