Расширения Firefox HTML-инъекция на лету? - PullRequest
0 голосов
/ 24 ноября 2011

Привет! Я следовал инструкциям по созданию расширения.

Моя проблема в том, что я могу вставлять текст на лету, но не HTML. Firefox заблокирует персонажа "<" </p>

Вот мой код в моем файле 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 голосов
/ 25 ноября 2011

Это XUL-файл, он должен использовать синтаксис XML. В частности, XML-теги внутри <script> элементов будут интерпретироваться как таковые - и вы определенно не хотите этого. Чтобы предотвратить это, вы можете заключить ваш скрипт в раздел CDATA :

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

Это гарантирует, что содержимое тега действительно интерпретируется как текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...