2009-11-18 4 views
0

XUL путь:Почему этот XUL-код работает, а эквивалент Javascript - нет?

<toolbar id="PersonalToolbar"> 
    <toolbarbutton 
    id="Testing-Doit-Button2" 
    class="bookmark-item pagerank" 
    tooltiptext="Do it!" 
    oncommand="testing_doit();" 
    /> 
</toolbar> 

Javascript способ:

function createBookmarkItem() { 
    const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; 
    var item = document.createElementNS(XUL_NS, "toolbarbutton"); 
    item.setAttribute("id", "Testing-Doit-Button2"); 
    item.setAttribute("class", "bookmark-item pagerank"); 
    item.setAttribute("tooltiptext", "Do it!"); 
    item.setAttribute("oncommand", "testing_doit();"); 
    return item; 
} 
function placeBookmarkItem() { 
var toolbar = document.getElementById("PersonalToolbar"); 
var button = createBookmarkItem(); 
toolbar.appendChild(button); 
} 
placeBookmarkItem(); 

XUL путь показывает кнопку. Способ Javascript показывает кнопку, когда я перехожу к Javascript-оболочке расширения Extension Developer's Extension, затем нажмите enumerateWindows(), затем нажмите chrome: //browser/content/browser.xul, затем введите код и нажмите enter. Способ Javascript не показывает кнопку, когда я включаю button.js в button.xul. Зачем?

+0

Вы можете перефразировать заголовок вопроса. Похоже, вы спрашиваете, в чем разница между Javascript и XUL. – pc1oad1etter

+0

это 1ooking 1ike a 1oad problem, 1o1 –

+0

Часть кода, который я здесь не приводил, и что ошибка была неработающей частью кода, который я привел здесь, и у которого не было ошибки. –

ответ

0

Часть кода, который я здесь не приводил, и что ошибка была неработающей частью кода, который я цитировал здесь, и у которого не было ошибки. Взгляните на «I add 10 functions to a code, I don’t even call any of them, but the code stops working!» для получения дополнительной информации.

+0

Так оно все работает? – lithorus

+0

На компьютере другого человека. У меня это не так. Взгляните на http://stackoverflow.com/questions/1770728/getelementbyidbookmarksbarcontent-appendchildbutton-is-interpreted-as-getel для получения дополнительной информации. –

+0

Теперь это на моем компьютере! Взгляните на http://stackoverflow.com/questions/1783176/i-try-to-add-a-new-button-to-firefox-but-its-the-old-button-that-gets-added для больше информации. –

0

Необходимо место placeBookmarkItem(); внутри события onload документов. Javascript выполняется до того, как документ будет на месте. В противном случае поместите элемент <script/> непосредственно перед элементом </window> в конце документа.

+0

Наложение вместо элемента окна. –

Смежные вопросы