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

Display dynamic content in mozilla's add-on popup

本文关键字:显示 动态 窗口 Mozilla      更新时间:2023-09-26

我正在开发一个附加组件,使人们能够关注流媒体,但它在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

现在,我不知道什么例子与解决我的问题有关。一 ?杰森一?如何?

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