您好我按照说明创建了扩展程序。
我的问题是我可以动态注入文本而不是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>
非常感谢您的帮助
答案 0 :(得分:0)
这是一个XUL文件,它必须使用XML语法。特别是,<script>
元素中的XML标记将被解释为 - 并且您绝对不需要它。为了防止它,您可以将脚本包装到CDATA section:
<script>
<![CDATA[
doSomething("<foo>bar</foo>");
]]>
</script>
这可以确保标记内容真正被解释为文本。