Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2010, 20:09
Новичок на форуме
Отправить личное сообщение для VOVOKA Посмотреть профиль Найти все сообщения от VOVOKA
 
Регистрация: 19.11.2010
Сообщений: 5

С локалкой работает а с сетью нет.
Потребовалось мне прочитать значения некоторых полей в загружаемых страницах сайтов.

Написал небольшой скрипт:

$(document).ready(function() {

var win=window.open("http://localhost/forum/newthread.php?do=newthread&f=13","","width=1000,he ight=350");
//alert(win);
//win.onload = a(win);
//alert(win);

//function a(wins) {
setTimeout(ass(),5000);
//}

function ass() {

//alert(win);
var l = win.document.forms[2].elements[0].value;
alert(l);
}


Сделал тестовую страницу. Попробовал на локалхосте. Все работает.
Попробовал на реальном скрипте также установленом локально. То же работает. Задавал задержки в 5, 7 и 10 секунд. За это время и страница подгружается и я успеваю внести хоть какие то данные в поля. Все нормально читается.

Попробовал с реальным сайтом из интернета. Не тут то было.
Не хочет читать и все. Пробовал читать и так как в скрипте и по id читать и по имени. Ничего, а на локалхосте все эти варианты работают.

Начал смотреть значение переменной win . При работе с сетью сразу после назначения выдает "объект виндос", а после задержки выдает неопределенность.
Попробовал поиграть с задержкой. Если поставить 0.5 секунды или меньше то эта переменная определяется, если больше то очищается. Ну и разумеется поэтому ни чего и не читается.

Но при малой задержке страница не успевает подгрузится и читать просто нечего.
Пробовал и через событие onload, но оно возникает раньше чем страница выводится на экран и все равно нужна задержка.

Вот отсюда и вопрос. Почему сбрасывается эта переменная при работе с сетью?

Последний раз редактировалось VOVOKA, 19.11.2010 в 20:14.
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2010, 20:40
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

//window.onload = function(){
    setTimeout(function(){
      window.open("http://javascript.ru", "site", "width=420, height=230");
    },5000);
//};
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2010, 21:02
Новичок на форуме
Отправить личное сообщение для VOVOKA Посмотреть профиль Найти все сообщения от VOVOKA
 
Регистрация: 19.11.2010
Сообщений: 5

Я наверное неточно объяснил. Речь идет о проверке значения полей в дочернем окне из основного окна.
Конструкция window.open разумеется будет работать но только с основным окном.
Что бы было понятнее, что это.
Я пишу плагин для WP для работы с библиотекой. В этой библиотеке будет множество ссылок для скачивания.
Но ссылки как известно вещь непостоянная и поэтому желательно иметь функцию которая будет проверять эти ссылки на доступность.

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

Поэтому и применяется переменная определяющая дочернее окно и именно с ней приходится работать.

И еще раз повторяю, что для сайта или другого скрипта установленного на локалхосте это все работает. А для сайтов из сети эта переменная сбрасывается.
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2010, 21:07
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от VOVOKA
Но ссылки как известно вещь непостоянная и поэтому желательно иметь функцию которая будет проверять эти ссылки на доступность.
это нужно делать на стороне сервера
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2010, 21:17
Новичок на форуме
Отправить личное сообщение для VOVOKA Посмотреть профиль Найти все сообщения от VOVOKA
 
Регистрация: 19.11.2010
Сообщений: 5

Сообщение от monolithed Посмотреть сообщение
это нужно делать на стороне сервера
Простите, но как я могу это сделать на стороне сервера. Это ведь не мои сайты. Речь идет об обычных файлообмениках.

Единственно что я могу, так это вызвать ту страницу которая указана в ссылке на скачивание и проверить ее отдельные поля. Но сделать это можно только на уже загруженных в браузер страницах.

Поэтому и применяю JS и пытаюсь динамически проверять страницы других (не своих) сайтов.
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2010, 22:00
Новичок на форуме
Отправить личное сообщение для VOVOKA Посмотреть профиль Найти все сообщения от VOVOKA
 
Регистрация: 19.11.2010
Сообщений: 5

Может быть существуют какие то ограничения самого JS для работы с сетью.
Может быть это ограничения Денвера.
Ативирусник я отключал.
Что еще может быть. Почему переменная с хендлом дочернего окна сбрасывается и именно при работе с реальными сетевыми страницами.

Кто то сталкивался с такой проблемой.
Ответить с цитированием
  #7 (permalink)  
Старый 20.11.2010, 09:14
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

тут почитай.
Ответить с цитированием
  #8 (permalink)  
Старый 21.11.2010, 01:49
Новичок на форуме
Отправить личное сообщение для VOVOKA Посмотреть профиль Найти все сообщения от VOVOKA
 
Регистрация: 19.11.2010
Сообщений: 5

Сообщение от micscr Посмотреть сообщение
тут почитай.
Большое спасибо за ссылку. Почитал я то что там было. Может быть чего то и не понял, но понял что для работы по этим методикам нужен определенный код как на одной стороне, так и на другой стороне.

На своей стороне я могу добавить код, а вот на другой то как. Те сайты на которых мне нужно проверять поля ведь не мои. Я туда вмешиватся не могу.
Так что пока не вижу решения проблемы.

Может быть это апач в денвере блокирует дочернее окно или браузер. Сейчас ведь понакрутили всяких фишек по безопасности, а что они делают толком неведомо.
Ответить с цитированием
  #9 (permalink)  
Старый 21.11.2010, 08:43
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

тут дело наверное в системе безопасности браузера. Аякс запросы например нельзя на другой домен отправлять. А ты всплывающее окно с другого домена читать собрался, причем именно текущие значения полей. Может это(не проверял).
Ответить с цитированием
  #10 (permalink)  
Старый 21.11.2010, 10:23
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

http://localhost/, надеюсь, заменили на реальный адрес?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт в мозила работает а в опере нет Batya Opera, Safari и др. 4 21.09.2010 18:39
скрипт работает только в IE, а в остальных браузерах нет. melodicman Firefox/Mozilla 0 23.06.2010 15:18
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
JS меню работает на обычной html странице, а на юкозовском движке нет. adware Я не знаю javascript 10 16.05.2009 16:48