【问题标题】:Dynamically add an 'Embed' type element to a document from within XUL从 XUL 中动态地将“嵌入”类型元素添加到文档中
【发布时间】:2011-02-15 06:34:27
【问题描述】:

这听起来可能含糊不清,但过去 6 小时我一直在尝试解决这个“简单”的壮举:

  1. 我有代码在 Firefox 插件中运行
  2. 用户触发了一个需要播放一些音频的操作,但这里要注意的是 - 此音频是动态的(取决于用户的输入),并且正在从某处的服务器获取。
  3. 我选择动态插入一个embed 元素到一个新的tabbrowser 的文档中,它的src 指向服务器资源,但是我完全无法做到这一点!我未能嵌入元素!

有趣的是,它在普通的 javascript 函数范围内运行良好(html 文档中 script 标记内的代码),但在使用 XUL 时一切都失败了。

下面是代码sn-p

function loadURL(url)  
{
var razorTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("chrome://razorextension/content/read.html"));  
razorTabBrowser.addEventListener("load", function () { 

    var soundEmbed = razorTabBrowser.contentDocument.createElement("embed");
     soundEmbed.setAttribute("src", url);
     soundEmbed.setAttribute("hidden", true);
     soundEmbed.setAttribute("autostart", true);
     soundEmbed.removed = false;

     razorTabBrowser.contentDocument.body.appendChild(soundEmbed)

    }, true);
}

【问题讨论】:

    标签: javascript firefox xul


    【解决方案1】:

    据我所知,nsISound.play 适用于远程 URL,只要它是 WAV 格式。

    编辑:

    我不记得哪个版本的 Firefox 支持 <html:audio>,但我认为您甚至可以在不将其添加到文档的情况下使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多