在mozilla的附加弹出窗口中显示动态内容

时间:2016-03-08 09:22:43

标签: javascript html json firefox-addon

我正在开发一个附加组件,让人们可以关注一个流媒体,但它在Mozilla商店被拒绝,因为它使用了不受保护的innerHTML。附加组件有两个部分:

  • 页面脚本:它加载流式传输器数据并在后台运行以检查它们是否在线。如果状态发生变化,则必须更改弹出内容。
  • 内容脚本:页面脚本无法更改弹出内容,因此内容脚本必须对其进行管理,但内容脚本会获得“清晰的DOM视图”,因此无法看到页面脚本定义的Javascript变量。

使用port.emit,我可以从页面脚本向内容脚本发送消息。它可以是我想要显示的HTML代码,也可以是我的对象的JSON版本。

我在JSON中序列化之前的对象:

function myObject(parameters)
{
   var link1 = parameters.link1;
   var picture1 = ...;

   var link2 = parameters.link2;
   var picture2 = ...;

   // some functions which can change pictures
}

HTML代码必须如下:

<ul>
    <li><a style='background-image: url(myObject1.pictures1)' href='myObject1.link1'</a></li>
    <li><a style='background-image: url(myObject1.pictures2)' href='myObject1.link2'</a></li>
</ul>
<ul>
    <li><a style='background-image: url(myObject2.pictures1)' href='myObject2.link1'</a></li>
    <li><a style='background-image: url(myObject2.pictures2)' href='myObject2.link2'</a></li>
</ul>

Mozilla的编辑向我发送了这个链接,说我会找到不使用innerHTML的方法:https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/DOM_Building_and_HTML_Insertion

现在,我不知道哪个例子可以解决我的问题。 HTML一个?杰森一个?怎么样?

1 个答案:

答案 0 :(得分:0)

朋友请参考以下链接,可能是您的问题已解决 https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Display_a_Popup