Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события? / 16 сообщений из 16, страница 1 из 1
17.02.2009, 22:49
    #35823529
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Хочу поисковик сделать для личных нужд.
Задача такая:
1. Из фрейма 1 читать по порядку данные и вставлять их в бокс в фрейме 3.
2. Затем нажимать кнопку Submit (вызывать событие)
3. Далее из фрейма 3 находить полученное значение, считывать его и записывать в фрейм 2.
4. Делать возврат в фрейме 3 или просто перезагружать фрейм с Frame3.htm
5. Идти на №1 по кругу пока в фрейме 1 данные не кончатся.

index.thm:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<HTML>
<HEAD>
<TITLE>A simple frameset document</TITLE>
</HEAD>
<script type="text/javascript">
.....
</script>
<FRAMESET cols="20%, 80%">
  <FRAMESET rows="100, 200">
      <FRAME src="Frame1.htm" NAME="page1">
      <FRAME src="Frame2.htm" NAME="page2">
  </FRAMESET>
  <FRAME src="Frame3.htm" NAME="page3">
</FRAMESET>
</HTML>

Frame1.htm:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html>
<head>
</head>
<body>
<Table>
<TR><TD>A</TD></TR>
<TR><TD>B</TD></TR>
<TR><TD>C</TD></TR>
<TR><TD>D</TD></TR>
<TR><TD>E</TD></TR>
<TR><TD>F</TD></TR>
</Table>
</body>
</html>

Frame2.htm:
Код: plaintext
1.
2.
3.
4.
5.
<html>
<head>
</head>
<body>
</body>
</html>

Frame3.htm:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<html>
<head>
</head>
<body>
<form action="Frame4.asp?" method="post" name="searchForm" enctype="">
Search for: 
	<input type="text" name="ST" id="ST" size="10" maxlength="100" value="">
	<input value="Search" type="button">
</form>
</body>
</html>

Frame4.asp:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<html>
<head>
</head>
<body>
<Table>
<TR><TD> 1 </TD></TR>
</Table>
</body>
</html>


Ткните пожалуйста носом как это можно сделать, а то я в JS не профессионал и даже не знаю возможно-ли то что я задумал.
...
Рейтинг: 0 / 0
17.02.2009, 23:51
    #35823582
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18.02.2009, 21:36
    #35825850
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Ex_Soft,

Спасибо большое. Получилось.

А не подскажете ещё как читать со страницы если там только текст и может быть ещё какие-то таблички?
...
Рейтинг: 0 / 0
18.02.2009, 23:52
    #35826006
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Огласите конечную цель предприятия...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.02.2009, 17:36
    #35828071
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Есть некоторый сайт, на нём есть поиск по данным, но так как данных очень много то я решил вместо того что-б ручками вбивать поисковые значения или копипастить, а потом из возвращённых результатов выковыривать данные сделать это всё на JS. Потом возможно подкручу MySQL&PHP, но пока обьём не настолько большой и можно обойтись HTMLем.

Попробовал вот такую конструкцию в page1. Данные кое как дёргаю через document.body.innerHTML, но вот как вернуть их себе на страницу не знаю.

Если первый "document.write("Hello World!");" работает, то уже "docoment.write("XXXXXXXXXXXXXXXXXXXXXX");" выдаёт ошибку. Говорит: Document is not defined.

Так я полагаю оно должно писать в текущем документе, я-ж ничего вроде не менял.
Код: plaintext
1.
2.
3.
4.
5.
 document.write("Hello World!");
 parent.document.getElementById("page3").contentWindow.document.getElementById("ST").value = "1223";
 parent.document.getElementById("page3").contentWindow.document.searchForm.submit();
 Text = parent.document.getElementById("page3").contentWindow.document.body.innerHTML;
 docoment.write("XXXXXXXXXXXXXXXXXXXXXX");
...
Рейтинг: 0 / 0
19.02.2009, 17:47
    #35828108
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
SandalTree
Код: plaintext
1.
docoment.write("XXXXXXXXXXXXXXXXXXXXXX");

???
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.02.2009, 18:35
    #35828232
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Ex_Soft,

Спасибо, я аж покраснел от такой ошибки.

Теперь задача вырисовалась такая, после того как я делаю submit на page3 мне нужно подождать когда она загрузится и только потом читать контент через body.innerHTML (3-я строка).
Это возможно?

Код: plaintext
1.
2.
3.
4.
parent.document.getElementById("page3").contentWindow.document.getElementById("ST").value = "1223";
parent.document.getElementById("page3").contentWindow.document.searchForm.submit();
Text = parent.document.getElementById("page3").contentWindow.document.body.innerHTML;
document.write(Text);
...
Рейтинг: 0 / 0
19.02.2009, 20:43
    #35828433
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
SandalTree,
Сандаль, признайся честно, нафиг тебе такие финты нужны? Во-первых, здесь (т.е. на этом самом хоруме) много чего про это написано, задачку - поставь таки! Решим, ёлы-палы!
...
Рейтинг: 0 / 0
19.02.2009, 22:53
    #35828569
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
ShSerge,

Так я-ж вроде всё рассказал что мне нужно и как пытаюсь сделать.

Грубо говоря задача - делать поиск и выискивать в возвращённом контенте некие данные.

Не знаю, но думаю вряд-ли поможет если я тебе дам конкретный сайт откуда я хочу тянуть данные.

Думаю что задача должна быть достаточно тривиальна и много раз решена другими средствами. Думаю нет проблем решить её на ColdFusion или C#, но я не хочу ставить себе на домашний комп ни то не другое. Поэтому пытаюсь применить самое наипростейшее решение которое возможно не только мне поможет.
...
Рейтинг: 0 / 0
19.02.2009, 23:32
    #35828606
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
SandalTree
после того как я делаю submit на page3 мне нужно подождать когда она загрузится и только потом читать контент

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
	frm;

if(!(frm=parent.document.getElementById("page3")))
	return;

frm.contentWindow.document.getElementById("ST").value = "1223";
frm.onload=function(){document.write(frm.contentWindow.document.body.innerHTML)};
frm.contentWindow.document.searchForm.submit();
???
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.02.2009, 00:09
    #35828637
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
SandalTree
задача - делать поиск и выискивать в возвращённом контенте некие данные

Дык
Error Console
Error: Permission denied to get property Window.document
Source File: file:///iframe1.html
Line: 23

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
20.02.2009, 17:14
    #35830305
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Ex_Soft,

Получается задача нерешаема с помощью JS?

А если попробовать открыть новое окно и делать это там?
...
Рейтинг: 0 / 0
21.02.2009, 09:45
    #35830835
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
SandalTree
А если попробовать открыть новое окно и делать это там?

Ну... Дык... Попробуйте... Кто ж Вам не дает?
У меня
Error Console
Error: Permission denied to get property Window.document
Source File: file:///google_search.html
Line: 47

SandalTree
Получается задача нерешаема с помощью JS?

Получается - да...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
07.10.2009, 00:37
    #36236297
KLEVO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Ex_Soft
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
	frm;

if(!(frm=parent.document.getElementById("page3")))
	return;

frm.contentWindow.document.getElementById("ST").value = "1223";
frm.onload=function(){document.write(frm.contentWindow.document.body.innerHTML)};
frm.contentWindow.document.searchForm.submit();

А разве так можно вообще делать по самой сути? В браузерах ведь из соображений безопасности отключили модификацию содержимого с чужеродного домена.

Ex_Soft
SandalTree
Получается задача нерешаема с помощью JS?

Получается - да...

Есть единственный вариант решения данной задачи - это использовать перенос содержимого.
Т.е. Принцип коллектор-приемник или использовать какого-то плана задержку-чек на загрузку.
...
Рейтинг: 0 / 0
07.10.2009, 01:47
    #36236319
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
SandalTreeПолучается задача нерешаема с помощью JS?Как я понимаю, есть некий сайт, с которого надо пособирать информацию (возможно, поподгружать) и компактно сформировать ее в определенном месте?

Предположим, что я понимаю правильно.

Тогда единственным выходом будет исполние JS "на территории" этого сайта. Причем место, куда будет складываться полученная информация, тоже должно быть там же.
1) Просто открываем сайт на нужной странице.
2) В строке браузера пишем javascript:alert(document.location); , жмем [Ентер], убеждаемся, что свой JS исполняться на сайте может. :)
3) Разбираемся со структурой DOM на сайте, и как там всё работает.
4) Составляем скрипт на JS. Необходимо добавить скриптом место для собирания информации (div и что-то там внутри него), после чего непосредственно заняться сбором (обходить DOM, при необходимости выполнять Ajax-запросы и т.д.). Поскольку, судя по всему, загрузок файлов здесь не намечается, то вполне можно обойтись стандартным xmlHttpRequest'ом.
5) Скрипт сохраняем в файл. Врядли его размер будет >100 кб, потому можно обойтись лучшим файлообменником для маленьких файлов - sql.ru :) Просто прикладываем файл к посту, например в этот топик. Теперь JS будет доступен по адресу http://www.sql.ru/forum/actualfile.aspx?id=NNNNNNN, где NNNNNNN - номер поста.
6) Делаем закладку в браузер, в адресе пишем

javascript:oSandalTree=document.createElement("script");oSandalTree.src="http://www.sql.ru/forum/actualfile.aspx?id=NNNNNNN";document.body.appendChild(oSandalTree);void(0);


Теперь если нажать эту закладку, когда открыт сайт, то JS загрузится на страницу, выполнится и сделает всё что нужно.

Задача непростая, отладка займет кучу времени.


Есть, конечно, вариант сделать на C#, используя ХТТП-запросы, но этот путь ещё более джедайский :)
...
Рейтинг: 0 / 0
07.10.2009, 05:15
    #36236358
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события?
Яростный МечЗадача непростая, отладка займет кучу времени.
Забросил я это пока, я-ж не профи в JS, в добавок я не уверен что на сайте можно JS иcполнить.

Яростный МечЕсть, конечно, вариант сделать на C#, используя ХТТП-запросы, но этот путь ещё более джедайский :)Когда-то я делал такое на ColdFusion, но давно это было, и CF сервер для этого нужен. Про С# я думал, но если задача не решается "влоб", то это уже выходит за рамки бюджета.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как с помощью JavaScript читать/писать данные в фреймах и вызывать там события? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]