Страницы: 1
Все работает с html страницей, а с xul страницей никак
function test2(){ var tn = window.document.createElement("script"); tn.textContent = "function test72(){alert('test72');}"; window.document.lastChild.firstChild.appendChild(tn); }//добавляем в <head>
<button label="button1" onclick="test72()"/>
<button label="button2" onclick="test2()"/>
После загрузки страницы кликая на "button1" нет ничего,
после того как кликнем на button2, появляется функция test72
И кликая на "button1" еще раз уже имеем результат.
С xul страницей что-то никак не получается добавить динамически скрипт делая тоже самое..
Отредактировано YuryL (05-01-2014 14:27:17)
Отсутствует
mozIJSSubScriptLoader.loadSubScript()
И можно попробовать
var script = document.createElementNS("http://www.w3.org/1999/xhtml", "script"); script.textContent = "alert('Ok');"; document.documentElement.appendChild(script);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
кстати, вопрос,
кто-нибудь пользуется XUL GEAR?
года два назад у меня все работало, сейчас только открывается окно,
но сделать больше ничего нельзя.
Добавлено 05-01-2014 19:33:38
mozIJSSubScriptLoader.loadSubScript()
И можно попробоватьВыделить кодКод:
var script = document.createElementNS("http://www.w3.org/1999/xhtml", "script"); script.textContent = "alert('Ok');"; document.documentElement.appendChild(script);
Спасибо большое, Infocatcher,
что только я уже не перепробовал...
Не совсем понятно про Name spaces, но главное работает!
Отредактировано YuryL (05-01-2014 19:33:38)
Отсутствует
кто-нибудь пользуется XUL GEAR?
года два назад у меня все работало, сейчас только открывается окно,
но сделать больше ничего нельзя.
Я не пользуюсь, но, судя по консоли ошибок, надо сказать спасибо оптимизаторам, выпилившим «ненужный» E4X.
Не совсем понятно про Name spaces, но главное работает!
Ну, в явном виде это нигде не описано, но у <xul:script>, как минимум, отличается реализация:
var xulScript = document.getElementsByTagNameNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "script")[0]; var htmlScript = content.document.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "script")[0]; // в текущей вкладке должна быть открыта HTML-страничка со скриптами alert("XUL:\n" + testNode(xulScript) + "\n\nHTML:\n" + testNode(htmlScript)); function testNode(node) { return [ "Element: " + (node instanceof Element), "HTMLScriptElement: " + (node instanceof HTMLScriptElement), "XULElement: " + (node instanceof XULElement) ].join("\n"); }
XUL: Element: true HTMLScriptElement: false XULElement: true HTML: Element: true HTMLScriptElement: true XULElement: false
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Страницы: 1