Вопрос № 102063: Здравствуйте !!! Я по поводу вопроса номер 101985 . Я на верное не совсем корректно его задал. Мне нужно найти все ссылки в новом открытом с помощью джавы окне. Ну я имею ввиду
var x=window.open('http://.........ru','','top=15, left=20, men...
Вопрос № 102.063
Здравствуйте !!! Я по поводу вопроса номер 101985 . Я на верное не совсем корректно его задал. Мне нужно найти все ссылки в новом открытом с помощью джавы окне. Ну я имею ввиду
Так вот как найти все ссылки в которых есть слово "toolbar" но только в новом окне. я пробовал вот так но ничего не получилось. Скрипт вообще не работал :
var links = x.document.getElementsByTagName("a");
var toolbarLinks = new Array();
var tlCount = 0;
for(var i = 0; i < x.links.length; i++)
{
if(links[i].indexOf("toolbar") != -1)
{
toolbarLinks[tlCount++] = x.links[i].href;
}
}
Отправлен: 14.09.2007, 18:17
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Errandir
Здравствуйте, Whiteman!
Думаю, что проблема возникает у вас всвязи со следующими вещами. По соображениям безопосности JavaScript не позволяет неподписанному сценарию в одном окне или фрейме прочитать свойства (такие как document.links) другого окна или фрейма, если только оба окна не показывают документы, взятые с одного веб-сервера.
--------- Si vox est - canta!
Ответ отправил: Errandir (статус: 4-ый класс)
Ответ отправлен: 14.09.2007, 19:54 Оценка за ответ: 5 Комментарий оценки: Блин . но можно же как то обойти эту лажовую систему ))
Всё верно. С новым открытым окном этот скрипт и не должен работать.
Кстати, я заметил у себя в скрипте ошибку. Простите за это.
вместо строки if(links[i].indexOf("toolbar") != -1)
должно быть if(links[i].href.indexOf("toolbar") != -1)
пропустил href....
А с новы окном он не работает (даже после ваших доработок) потому, что
новому окну нужно дать время загрузиться иначе Ваш x.document вполне вероятно будет либо null либо просто не содержать тела страницы и негде будет искать ссылки...
var toolbarLinks = new Array();
//ждём загрузки окна. вероятно время ожидания нужно будет увеличить.
// я тестировал на локалных страницах и 1000 миллисекунд хватало с лихвой
setTimeout('alert(getLinks(eval(x)))',1000);
function getLinks(xWin)
{
var links = xWin.document.getElementsByTagName("a");
var toolbarLinks = new Array();
var tlCount = 0;
for(var i = 0; i < links.length; i++)
{
if(links[i].href.indexOf("toolbar") != -1)
{
toolbarLinks[tlCount++] = links[i].href;
}
}
return toolbarLinks
}
alert, естественно нужно заменить на что-либо более практичное ;-)))
Удачи.
Ответ отправил: Иоффе Мэир Вэлевич (статус: 1-ый класс)
Ответ отправлен: 14.09.2007, 22:37 Оценка за ответ: 5 Комментарий оценки: пасиб, щас буду пробовать