Firefox扩展程序HTML注入动态?

时间:2011-11-24 15:55:21

标签: firefox firefox-addon

您好我按照说明创建了扩展程序。

我的问题是我可以动态注入文本而不是HTML。 Firefox会阻止字符“<”

这是我的XUL文件中的代码。

<?xml version="1.0"?>
<overlay id="sample" 
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script src="jquery.js" /> 

<script>


var myExtension = {
init: function() {
    // The event can be DOMContentLoaded, pageshow, pagehide, load or unload.
    if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false);
},
onPageLoad: function(aEvent) {
    var doc = aEvent.originalTarget; // doc is document that triggered the event
    var win = doc.defaultView; // win is the window for the doc
         if (win != win.top) return; //only top window.
         $("body",doc).html('WORK');
         $("body",doc).html('<div>NOT WORKING</div>');
    }
}
window.addEventListener("load", function() { myExtension.init(); }, false);
</script>    
</overlay>

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这是一个XUL文件,它必须使用XML语法。特别是,<script>元素中的XML标记将被解释为 - 并且您绝对不需要它。为了防止它,您可以将脚本包装到CDATA section

<script>
<![CDATA[
  doSomething("<foo>bar</foo>");
]]>
</script>

这可以确保标记内容真正被解释为文本。