Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№122-09-2009 21:21:16

be@ver
Участник
 
Группа: Members
Зарегистрирован: 21-09-2009
Сообщений: 15
UA: Firefox 3.5

XULrunner нажатие кнопок и ссылок

Есть две функции
1. Нажатие на кнопку формы

Выделить код

Код:

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)
сижу в тупике :( ибо первая функция работает полностью, вторая рисует рамочку и все :(

Отредактировано be@ver (22-09-2009 21:22:04)

Отсутствует

 

№223-09-2009 02:28:40

zibloid
Участник
 
Группа: Members
Зарегистрирован: 22-08-2009
Сообщений: 16
UA: Firefox 3.5

Re: XULrunner нажатие кнопок и ссылок

be@ver
А вызов метода click() обезателен? Вот так можно сделать?

Выделить код

Код:

var a = document.getElementById('test_a');
a.onclick=function()
{
    a.style.border = "1px solid red";
    // Делаем что нада 
}

Где находится ссылка, в html документе или непосредственно в xul и прописан как <html:a> ???

Отсутствует

 

№323-09-2009 04:51:05

be@ver
Участник
 
Группа: Members
Зарегистрирован: 21-09-2009
Сообщений: 15
UA: Firefox 3.5

Re: XULrunner нажатие кнопок и ссылок

и ссылка и форма в 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();
}
Выделить код

Код:

function nextBrowser1(){
/*
тут дальше что-то происходит
*/
}

в startBrowser обрабатываем форму, в nextBrowser пытаемся перейти по сылке. Попытка в nextBrowser изменит src для browser то-же ни к чему не приводит.

зы. обработчики, прописываемые с помощью addEventListener исправно вызываются, особенно если прописать browser.reload()  :(

Отсутствует

 

№423-09-2009 18:34:35

be@ver
Участник
 
Группа: Members
Зарегистрирован: 21-09-2009
Сообщений: 15
UA: Firefox 3.5

Re: XULrunner нажатие кнопок и ссылок

Заработало (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 прописанный для ссыли обрабатывать :(

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]