2011-02-15 54 views
0

內這聽起來含糊添加到文檔,但我已經遭受了最後6小時試圖解決這個「簡單」的壯舉:動態的「嵌入」型元素從XUL

  1. 我有代碼運行在一個Firefox插件內
  2. 用戶觸發需要播放一些音頻的操作,但這裏的問題是 - 該音頻是動態的(取決於用戶的輸入),並且正從某個服務器獲取。
  3. 我選擇動態地將一個embed元素插入到一個新的tabbrowser的文檔中,其src指向服務器資源,但完全失敗才能使其工作!我未能嵌入元素!

有趣的是,它從正常的JavaScript函數範圍(html文檔中的script標記內的代碼)運行良好,但在使用XUL時都失敗。

下面是前來代碼片段

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); 
} 

回答

0

據我所知,在遠程URL nsISound.play的作品,只要是WAV格式。

編輯:

我不記得是哪Firefox的版本支持<html:audio>但我認爲你可以使用它,甚至沒有將它添加到文檔。