>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >XULrunner нажатие кнопок и ссылок http://forum.mozilla-russia.org/viewtopic.php?id=40166 |
be@ver > 22-09-2009 21:21:16 |
Есть две функции Выделить код Код:function clickButton(){ var btn = contentMe.getElementById("btn"); btn.style.border="2px solid red"; btn.click(); } 2. Нажатие на ссылку Выделить код Код:function clickLink(){ var divl = contentMe.getElementById("n5"); var links = divl.getElementsByTagName("a"); links[0].style.border="2px solid red"; links[0].click(); } У Дэнни Гудмана и Майкла Моррисона пишется, что метод click изначально существовал только у элементов форм. Как тогда программно нажимать ссылки (и те элементы, у которых определен обработчик onclick) |
zibloid > 23-09-2009 02:28:40 |
be@ver Выделить код Код:var a = document.getElementById('test_a'); a.onclick=function() { a.style.border = "1px solid red"; // Делаем что нада } Где находится ссылка, в html документе или непосредственно в xul и прописан как <html:a> ??? |
be@ver > 23-09-2009 04:51:05 |
и ссылка и форма в html документе. самое смешное, что этот документ грузится в элемент browser, и происходит следующее: Выделить код Код:var contentMe; var browser; /* тут куча кода иницилизирующего наш browser */ browser.setAttribute("src", url); browser.addEventListener("load", startBrowser, true); /* тут browser динамически добавляется в xul */ Выделить код Код:function startBrowser{ contentMe = browser.contentDocument; var btn = contentMe.getElementById("btn"); btn.style.border="2px solid red"; browser.addEventListener("load", nextBrowser, true); btn.click(); } Выделить код Код:function nextBrowser(){ var divl = contentMe.getElementById("n5"); var links = divl.getElementsByTagName("a"); links[0].style.border="2px solid red"; browser.addEventListener("load", nextBrowser1, true); links[0].click(); } в startBrowser обрабатываем форму, в nextBrowser пытаемся перейти по сылке. Попытка в nextBrowser изменит src для browser то-же ни к чему не приводит. зы. обработчики, прописываемые с помощью addEventListener исправно вызываются, особенно если прописать browser.reload() |
be@ver > 23-09-2009 18:34:35 |
Заработало (c) Выделить код Код:function clickLink(){ var divl = contentMe.getElementById("n5"); var links = divl.getElementsByTagName("a"); links[0].style.border="2px solid red"; contentBot.location.href = links[0].href; } теперь бы разобраться, как onclick прописанный для ссыли обрабатывать |