1 Востаннє редагувалося Replace (29.08.2012 23:26:42)

Тема: Обмін даними між фреймами

ситуация такова
есть страница, на ней два фрейма
в левом фрейме страница левого сайта с формой заполнения
справа фрейм с локальной страницей с даными для заполнения
нужно чтоб даные при клике переносились с правого фрейма в поля левого фрейма
если левый фрейм сохранял на локалке все вбивает норм, если веб ресурс то прост нереагирует
немног читал, пишут люди разное

parent.frames['anketa'].document.aspnetForm.ctl00$ContentPlaceHolder$ucQ_EntrantInfo$txtCN.value=z;
parent.frames['anketa'].document.aspnetForm.ctl00$ContentPlaceHolder$ucQ_EntrantInfo$txtYOB.value=y;
parent.frames['anketa'].document.aspnetForm.ctl00$ContentPlaceHolder$ucQ_EntrantInfo$txtLastName.value= x;

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

2 Востаннє редагувалося bunyk (28.08.2012 15:51:45)

Re: Обмін даними між фреймами

Якщо я правильно зрозумів ви хочете обійти політику одного походження.

3 Востаннє редагувалося Replace (29.08.2012 23:27:01)

Re: Обмін даними між фреймами

<body bgcolor="#FFFAF0">
    <table><tr>
    <td><iframe name="anketa" id="anketa" src="https://www.dvlottery.state.gov/esc/(S(oyv02t55ds40hpfb3q2adf45))/Secure/StatusCheck.aspx" ></iframe></td>
    <td><iframe name="user" id="user" src="confirmation\011930.htm" ></iframe></td>
    </tr>
    <tr><td><button id="button" type="submit" ">Confirm</button></td></tr></table>
    </body>

ось код html

4

Re: Обмін даними між фреймами

For security reasons Javascripts can't communicate between frames loaded from different domains.

Щоб зрозуміти рекурсію потрібно спочатку зрозуміти рекурсію.
int fac(int n) { return n < 2 ? 1 : n*fac(n-1); }

5

Re: Обмін даними між фреймами

Одна із головних заповідей client-side-програміста: "Не сотвори собі фреймів").

Щоб зрозуміти рекурсію потрібно спочатку зрозуміти рекурсію.
int fac(int n) { return n < 2 ? 1 : n*fac(n-1); }
Подякували: d4rkc10ud1

6

Re: Обмін даними між фреймами

а як по іншому мені зробити цю річ ?
прсот на фірмі є 30000 збережених сторінок, в них є інформація
треб всі ці сторінки по черзі відкривати і інформацію з них вбивати в ту форму на певному сайті і провіряти результат

є декілька фірм які мають подібну прогу і вона в них робить
мені замовили шось подібне, вот сижу ламаю голову

можливо є інші методи вирішення ціє проблеми, радий буду почути

7

Re: Обмін даними між фреймами

Використовувати ServerSide мову, наприклад php. Потім file_get_contents() для цих сторінок, а там вже обробляти інформацію тим же php або за допомогою js.

8

Re: Обмін даними між фреймами

RTFM AJAX!

Світ врятують краса та масові розстріли
Лепей жывы сабака, чымся здохлы леў
Хто до нас із томагавком прийде, той од томагавка і томагавкнеться

9

Re: Обмін даними між фреймами

d4rkc10ud написав:

RTFM AJAX!

Проблема передачи данных между окнами, если url этих окон относятся к разным доменам

Довольно распространенной является организация передачи данных между отдельными окнами браузера или между фреймами внутри одного окна. В стандартной ситуации это нетрудно сделать через объектную модель. Но если страницы двух этих окон относятся к разным доменам - скорее всего вы не сможете получить доступ к объектам (и также переменным, функциям и т.д) другого окна. То же относится и к фреймам. Универсального удобного способа решить эту проблему нет. Следует подумать о возможности передавать данные средствами ajax, cookie, через дополнительные специально организованные страницы, буфер обмена и т.д.

вот тебе и мануал
так что думай что пишеш
все сводится обратно к кросддоменным запросам иль чет тому подобному

10

Re: Обмін даними між фреймами

и там не просто передать данные надо, они должны внестись в форму, там еще капча будет вводится и ток тогда сабмитом отправятся на тот сайт, откуда придет ответ
и так надо проделать 30000 раз

11

Re: Обмін даними між фреймами

Ага, тепер все зрозуміліше. Політику того ж походження обійти не вийде бо сайт до якого ми звертаємось недоступний для модифікації. В такому разі я б робив проксі-сервер, який робив би запит до форми на сторінці  https://www.dvlottery.state.gov/esc/(S( … heck.aspx, відображав її в себе підвантажуючи один з 30000 готових документів і заповнюючи деякі поля. Після ручного розгадування капчі - перенаправляв запит назад.

Для емуляції браузера раджу бібліотечку mechanize, яка є щонайменше в perl, python та ruby. Хоча може можна буде обійтись і простим urllib2 чи httplib2, все залежить які механізми захисту від автоматизації ще там є. Часом буває потрібно відправляти заголовки user-agent, чи ще які-небудь токени або куки.

Ще можна написати щось на selenium, але тут в мене нема досвіду, тому нічого підказати не можу.

Якщо щось придумаєте - поділитесь, гаразд? Все таки цікава задача.

Подякували: Replace, d4rkc10ud2

12

Re: Обмін даними між фреймами

спасиба, буду пробывать реализировать вашу идею
ну в принцыпе уже и сам к этому шел
раньше еще с этим не сталкивался,
если выйдет написать прокси который бы вбивал инфу перед отображением страницы
то в фрей прост впишу

<iframe src="/proxy.php?url=https://www.dvlottery.state.gov/esc/Secure/StatusCheck.aspx" />

и должно заработать

13 Востаннє редагувалося Patron (29.08.2012 08:43:22)

Re: Обмін даними між фреймами

bunyk написав:

Ага, тепер все зрозуміліше. Політику того ж походження обійти не вийде бо сайт до якого ми звертаємось недоступний для модифікації. В такому разі я б робив проксі-сервер, який робив би запит до форми на сторінці  https://www.dvlottery.state.gov/esc/(S( … heck.aspx, відображав її в себе підвантажуючи один з 30000 готових документів і заповнюючи деякі поля. Після ручного розгадування капчі - перенаправляв запит назад.

Для емуляції браузера раджу бібліотечку mechanize, яка є щонайменше в perl, python та ruby. Хоча може можна буде обійтись і простим urllib2 чи httplib2, все залежить які механізми захисту від автоматизації ще там є. Часом буває потрібно відправляти заголовки user-agent, чи ще які-небудь токени або куки.

Ще можна написати щось на selenium, але тут в мене нема досвіду, тому нічого підказати не можу.

Якщо щось придумаєте - поділитесь, гаразд? Все таки цікава задача.

Ви спеціально не запропонували варіант реалізації на php? Релігія не дозволяє? Фофуддя?))

Щоб зрозуміти рекурсію потрібно спочатку зрозуміти рекурсію.
int fac(int n) { return n < 2 ? 1 : n*fac(n-1); }

14

Re: Обмін даними між фреймами

Patron написав:

Ви спеціально не запропонували варіант реалізації на php? Релігія не дозволяє? Фофуддя?))

Якби знав як це зробити на PHP то написав би. Можливо там теж є Mechanize. Крім того Replace вже написав про get_file_contents.

А чого ви питаєте? І чого не питаєте про Java? ASP? VisualBasic? І чого самі не напишете про PHP?

15 Востаннє редагувалося Patron (29.08.2012 20:07:08)

Re: Обмін даними між фреймами

bunyk написав:
Patron написав:

Ви спеціально не запропонували варіант реалізації на php? Релігія не дозволяє? Фофуддя?))

Якби знав як це зробити на PHP то написав би. Можливо там теж є Mechanize. Крім того Replace вже написав про get_file_contents.

А чого ви питаєте? І чого не питаєте про Java? ASP? VisualBasic? І чого самі не напишете про PHP?

Я питаю бо ви не згадали про найпоширенішу серверну скриптову мову програмування. Набагато менше людей знає python, ruby та perl ніж тих котрі знають php. Я не написав про php бо Replace вже написав. Може вам слід було порадити асемблер або С? Короче, на php найпростіше це робити, бібліотека curl або file_get_contents.

Щоб зрозуміти рекурсію потрібно спочатку зрозуміти рекурсію.
int fac(int n) { return n < 2 ? 1 : n*fac(n-1); }

16

Re: Обмін даними між фреймами

Якщо в bunyk`а релігія Пайтон, то треба тільки радіти тому, бо пхп кодерів хоч греблю гати, але жоден не написав до українських вікіпідручників про свою улюблену мову програмування, на відміну від bunyk`а. Пайтон також широко використовується в якості серверної мови програмування, так що не треба нав`язувати людині пхп, віндовз, китайську мову і місіонерську позицію, Pat Ron`e :)

Світ врятують краса та масові розстріли
Лепей жывы сабака, чымся здохлы леў
Хто до нас із томагавком прийде, той од томагавка і томагавкнеться
Подякували: bunyk1

17

Re: Обмін даними між фреймами

d4rkc10ud написав:

Якщо в bunyk`а релігія Пайтон, то треба тільки радіти тому, бо пхп кодерів хоч греблю гати, але жоден не написав до українських вікіпідручників про свою улюблену мову програмування, на відміну від bunyk`а. Пайтон також широко використовується в якості серверної мови програмування, так що не треба нав`язувати людині пхп, віндовз, китайську мову і місіонерську позицію, Pat Ron`e :)

Місіонерську позицію? Окей я нічого не нав'язую, perl то perl.

Щоб зрозуміти рекурсію потрібно спочатку зрозуміти рекурсію.
int fac(int n) { return n < 2 ? 1 : n*fac(n-1); }

18

Re: Обмін даними між фреймами

Здається тема вичерпала своє. Закриваю.
P.S. Не забуваємо використовувати bb-тег code.