Загрузить элементы документа с другой страницы
Здравствуйте, возможно ли загрузить элементы документа с другой страницы. Например обратиться к документу другой страницы с целью вывести все ссылки другой страницы на текущей странице ? Если это возможно то как обратиться к документу другой страницы ?
|
Обе страницы на одном и том же домене?
Код на jQuery пойдёт? |
Цитата:
|
// Кроссбраузерно создаём объект запроса
var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject( 'Microsoft.XMLHTTP' );
// Открываем соединение
req.open( 'GET', '/index.php', true );
// Вешаем на объект запроса обработчик события readystatechange
req.onreadystatechange = function () {
// readyState — это состояние запроса. Если он равен 4 (запрос выполнен), то…
if ( req.readyState == 4 ) {
// Проверяем, успешно ли выполнена загрузка документа
if ( req.status == 200 ) {
// Если да, то парсим текст ответа в DOM
var node = document.createElement( 'DIV' );
node.innerHTML = req.responseText;
// Вернёт текст первой ссылки
alert( node.getElementsByTagName( 'A' )[0].innerHTML );
}
}
};
// Отсылаем запрос
req.send( null );
|
exec
огромное спасибо Но есть один вопрос: 1.Можно ли вместо /index.php использовать /index/ или /index.html Другими словами запрос к статичной странице можно направлять ? |
Можно.
|
А у меня такой вопрос! Поиск слова в другом файле html возможен?
Например поиск в цикле по всем html страничкам от 0 до 100 с нахождением в тексте отдельных слов и возврат тега с текстом содержащий это слово и тег стоящий перед ним!? |
можно средствами скрипта-если все страницы твои
|
var I = 0, R = [], word = "слово";
(function (I) {
var request = window.XMLHttpRequest() ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
request.open("GET", "/page" + I + ".html", true);
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var doc = document.createElement("DIV");
doc.innerHTML = request.responseText;
(function (C) {
for (var i = 0; i < C.childNodes.length; i++) {
var U = C.childNodes[i];
if (U.nodeType === 1) {
arguments.callee(U);
} else if (U.nodeValue.indexOf(word) !== -1) {
R.push([U = U.parentNode]);
while (U = U.previousSibling) {
if (U.nodeType === 3) {
R[R.length - 1][1] = U;
break;
}
}
}
})(doc);
if (I < 100)
arguments.callee(++I);
}
};
request.send(null);
})(I);
В этом примере запросы идут по страницам pageN.html, 0 <= N < 100 По окончании всех запросов элементы будут лежать в массиве R. |
То есть элемент найденного слова? ну тоже неплохо!
Осталось еще повесить после совпадение обработчик берущий параметры html , id и т.д. что бы потом забабахать страничку. Вопрос, в массиве содержится просто слово или сам тег содержащий слово? |
| Часовой пояс GMT +3, время: 18:08. |