javascript - 如何在不使用sdk的情况下将html显示为firefox面板

标签 javascript firefox firefox-addon panel

我需要在我的 firefox 插件中使用 javascript 将 html 元素显示为弹出面板的内容。

使用 SDK 显示弹出窗口是我正在寻找的,但我不想使用 SDK。

面板:

<popupset id="mainPopupSet">
    <panel id="htmlPanel" type="arrow">
        i want to use html elements like p,div,span, etc here.
    </panel>
</popupset> 

用 JavaScript 打开面板:

document.getElementById('htmlPanel').innerHTML = 'my custom contents';
document.getElementById('htmlPanel').openPopup(null, "before_start", 0, 0, false, false);

似乎有些元素是允许的,但行为不同!我还需要为面板内的元素设置 CSS。

最佳答案

我弄清楚如何使用iframe来做到这一点

将 XUL 更改如下:

<popupset id="mainPopupSet">
    <panel id="htmlPanel" type="arrow">
        <html:iframe id="htmlContainer"/>
    </panel>
</popupset> 

并创建一个 JavaScript 函数来设置 html 内容:

function setupPanel(contents, width, height)
{
    var iframe = document.getElementById("htmlContainer");
    iframe.setAttribute("src","data:text/html;charset=utf-8," + escape(contents));
    iframe.width = width || 300; //default width=300
    iframe.height = height || 300; //default height=300
}

和用法:

setupPanel("<p>this is raw HTML.</p>");
document.getElementById('htmlPanel').openPopup(null, "before_start", 0, 0, false, false);

感谢您的提示。

关于javascript - 如何在不使用sdk的情况下将html显示为firefox面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618755/

相关文章:

javascript - 为什么这在 Firefox 上不起作用?

css - Firefox 不呈现 Open Sans、sans-serif、字体大小 : 11 properly

javascript - 关闭 Firefox 扩展中的 CSS 文件缓存

javascript - 使用 Firefox Add-on SDK 读取指定主机的 cookie

javascript - 从 XmlHttpRequest.responseJSON 解析 JSON

javascript - 使用 HTML5 缓存时无法加载外部资源

JavaScript : access return of other function

android - 在 Firefox for Android 版本 42 或更新版本中安装未签名的 XPI

javascript - 使用D3动态添加 'value'属性到选项标签

javascript - rhino CodeGenerator Token.EXPR_RESULT 中的错误?