Страницы: 1
есть код
window.addEventListener("load",function(){ gBrowser.addEventListener("DOMContentLoaded", function(aEvent){SomeEvent(aEvent);}, false); },false); function SomeEvent(aEvent) { }
Вопрос: как в функции SomeEvent получить отренедеренный контент страницы, тоесть без html тегов и с уже выполненным JS.
Спасибо.
Отсутствует
и еще вопрос, можно ли из плагина отправить AJAX запрос на сторонний сервер.
А есть ещё и несторонний какой-то?
Под плагином вы имеете в виду расширение, наверное.
Можно.
почему не могу получить доступ к window.document.body.innerText?
Потому что undefined, вестимо. Используйте document.body.textContent
Отсутствует
Можно.
Как?
пробую так
function getXmlHttp() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined') xmlhttp = new XMLHttpRequest(); return xmlhttp; } function sendRequest(url, query) { var httpRequest = getXmlHttp(); var timeout; if(query == null) httpRequest.open('GET', url, true); else httpRequest.open('POST', url, true); httpRequest.onreadystatechange = function(){ if (httpRequest.readyState != 4) return; clearTimeout(timeout); alert("State: "+httpRequest.status); //if (httpRequest.status == 200) alert(httpRequest.responseText); } if(query != null) httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') httpRequest.send(query); timeout = setTimeout(function(){ try{ httpRequest.abort(); }catch(e){} }, 30000); // таймаут }
но httpRequest.status всегда равен 0
Используйте document.body.textContent
вылетает ошибка TypeError: document.body has no properties
Отсутствует
вылетает ошибка TypeError: document.body has no properties
Вы, наверное, в chrome mode это делаете? Там как-то так:
скрытый текстВыделить кодКод:
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } }
Потрудитесь построить минимальный пример, пожалуйста .
Отсутствует
Потрудитесь построить минимальный пример, пожалуйста .
Минимальный пример чего? яж написал код как я пробую, пробовал JQUERY подключать, всерн запрос не выполняется
Отсутствует
Минимальный пример чего?
Вашей проблемы. Без проверки на микрософтовость, без выбора между 'GET' и 'POST', без таймаутов. Это упростило бы просмотр вашего кода и увеличило бы количество желающих это сделать .
Пока что, бегло проскроллив ваш код, могу предложить, что вы тягаете локальный файл откуда-нибудь с "file:///C:", вот и получаете 0 вместо 200.
Отредактировано luitzen (23-06-2010 19:47:14)
Отсутствует
Что-то вас неочень понимаю. Вы хотите получить «отрендеренный контент» страницы, которую берёте AJAX-запросом?
В прежнем совете подразумевался контент страницы, открытой в активной вкладке текущего окна.
Отсутствует
нет, это было 2а разных вопроса. Пенрвый вопрос про AJAX я уже выяснил, остался второй как получить контент, тот который на обычной странице доступен в window.document.body.innerText
При обращении из расширения к window.document.body.innerText там ничего нет
Отредактировано k0s (28-06-2010 14:54:41)
Отсутствует
При обращении из расширения к window.document.body.innerText там ничего нет
Во-первых, innerText — это микрософтовский атрибут.
Во-вторых, браузер сам написан на некотором разметочном языке (XUL). В этом «xul-документе» есть свои window и document. Это не те window и document, которые есть у HTML-документа во вкладке.
Вот вы попробуйте сказать "alert(window)" в консоли ошибок. Получите не то же самое, если бы сказали "javascript: alert(window)" в адресной строке.
Почитайте про Tabbed Browser и про Working_with_windows_in_chrome_code.
Отсутствует
про окна я понял. Сссылки почитал, но ответа на свой вопрос так и не нашол
есть код
window.addEventListener("load",function(){ gBrowser.addEventListener("DOMContentLoaded", function(aEvent){SomeEvent(aEvent);}, false); },false); function SomeEvent(aEvent) { }
Нужно получить контент страницы для которой вызвалась функция SomeEvent, я предполагал что он будет в aEvent но его там нет(
Отсутствует
С кастомной кнопки нижеследующее у меня работает. Или проблема не в этом?
gBrowser.addEventListener ("DOMContentLoaded", someEvent, false); function someEvent(aEvent) { alert(aEvent.originalTarget.body.textContent); }
В примерах по ссылкам слушатели вешаются на другие объекты и фильтруются фреймы.
Отсутствует
Страницы: 1