Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Java / JavaScript


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Java/JavaScript

Выпуск № 436
от 20.09.2007, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 370, Экспертов: 33
В номере:Вопросов: 1, Ответов: 2


Вопрос № 102063: Здравствуйте !!! Я по поводу вопроса номер 101985 . Я на верное не совсем корректно его задал. Мне нужно найти все ссылки в новом открытом с помощью джавы окне. Ну я имею ввиду var x=window.open('http://.........ru','','top=15, left=20, men...

Вопрос № 102.063
Здравствуйте !!! Я по поводу вопроса номер 101985 . Я на верное не совсем корректно его задал. Мне нужно найти все ссылки в новом открытом с помощью джавы окне. Ну я имею ввиду

var x=window.open('http://.........ru','','top=15, left=20, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, width=400, height=300');

Так вот как найти все ссылки в которых есть слово "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
Комментарий оценки:
Блин . но можно же как то обойти эту лажовую систему ))

Отвечает: Иоффе Мэир Вэлевич
Здравствуйте, Whiteman!

Всё верно. С новым открытым окном этот скрипт и не должен работать.
Кстати, я заметил у себя в скрипте ошибку. Простите за это.
вместо строки if(links[i].indexOf("toolbar") != -1)
должно быть if(links[i].href.indexOf("toolbar") != -1)
пропустил href....

А с новы окном он не работает (даже после ваших доработок) потому, что
новому окну нужно дать время загрузиться иначе Ваш x.document вполне вероятно будет либо null либо просто не содержать тела страницы и негде будет искать ссылки...

А попробуйте-ка вот так:

var x=window.open('Default2.aspx','','top=15, left=20, menubar=0, toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, width=400, height=300');

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
Комментарий оценки:
пасиб, щас буду пробовать


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.59 от 18.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное