Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу узнать текущую ссылку с IFRAME 
:(
    Опции темы
Reverent
  Дата 15.6.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



Добрый день уважаемые форумчани.

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

У меня есть база данных содержащая ссылки на доски объявлений. Когда пользователь заходит в систему появляется IFRAME в котором загружаются ссылки этих досок объявлений. Ссылка ведет изначально на выбор раздела, в который попадет объявления, вот как здесь:
http://ads.posad.org/cgi-bin/do/index.cgi?a=1 

Затем пользователь выбирает раздел (все это происходит в том же IFRAME моей системы) и появляется вот такая страница:
http://ads.posad.org/cgi-bin/do/add.cgi?c=4

В моей системе есть форма, в которой уже все поля заполнены, пользователю лишь нужно нажать на кнопку «Послать» и объявление должно отправиться. Но вот тут то я и столкнулся с проблемой.

Я назначил вот такой параметр для тэга FORM
<FORM  method="post" target="здесь_имя_iframe" name="message">
Но, к сожалению, форма посылаться не на страницу, которую выбрал пользователь в IFRAME, а на текущую страницу, причем она открывается в этом IFRAME.

Тогда я решил, что действую не правильно, мне нужно обозначать свойство action для тэга IFRAME. Но я не могу получить нужную мне ссылку с IFRAME. Начинаю действовать так:

document.getElementById("blocks").src – но этот метод не действует т.к. он выдает ссылку на изначальную страницу (в нашем примере http://ads.posad.org/cgi-bin/do/index.cgi?a=1 ) и не коем разе не следит этот параметр за передвижением пользователя

Тогда пробую сделать вот так:
document.getElementById("blocks").contentWindow.location.href
Но скрипт говорит, что не прав доступа!

Что же мне делать? Как мне решить проблему, как можно послать эту форму на этот IFRAME заранее не зная ссылку, которая является текущей для этого IFRAM’a?
PM MAIL   Вверх
krundetz
Дата 15.6.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Боюсь что никак так как браузеры блокируют обращение к контенту загруженному сдругих доменов в iframe. Возможно поможет вариант когда вы будете пропускать все через свой сервер и выбирать необходимый вам url там


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Sannis
Дата 15.6.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Reverent, Вам просто нужно дополнить вашу базу урлов ещё одним, который прописан в Action у формы отправки и, возможно, добавить значение hidden полей формы. Для указанной вами страницы http://ads.posad.org/cgi-bin/do/add.cgi?c=4 это будет http://ads.posad.org/cgi-bin/do/add.cgi&c=4&a=1. Думаю теперь будет несложно отправлять свою форму по нужному адресу? smile


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Reverent
Дата 16.6.2008, 05:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



Цитата(Sannis @ 15.6.2008,  22:51)
Reverent, Вам просто нужно дополнить вашу базу урлов ещё одним, который прописан в Action у формы отправки и, возможно, добавить значение hidden полей формы. Для указанной вами страницы http://ads.posad.org/cgi-bin/do/add.cgi?c=4 это будет http://ads.posad.org/cgi-bin/do/add.cgi&c=4&a=1. Думаю теперь будет несложно отправлять свою форму по нужному адресу? smile

Именно так и хотел сделать, когда руки уже опустились, но тогда количество работы у заказчика в админской системе возрастет, что будет не очень то оптимальным вариантом :(


Гениальные идеи приходят ночью! Я решил реализовать следующее. Сделал IFRAME со страницей с моего сервера. На нем находилась функция PHP которая соединялась по сокету со страницей и считывала ее. Затем сделал парсер который делает вот так:

Берет вот это
<a href="http://blablabla.ru/add.php?a=1">
и переводит вот в это:
<a href="javascript:linkGo('http://blablabla.ru/add.php?a=1')">

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

Когда же пользователь жмет на ссылку происходит переход в эту функцию которая получает в значении выбранную ссылку. Функция сохраняет ее в глобальной переменной и запускает тот же самый скрипт PHP только теперь с выбранной ссылкой. Таким образом круг замкнулся - пользователь может ходить по сайту, даже не подозревая что это уже не совсем тот сайт.

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

Все оказалось элементарно и просто! ;) - думаю мой бриф комунибудь в будущем поможет

Это сообщение отредактировал(а) Reverent - 16.6.2008, 05:56
PM MAIL   Вверх
krundetz
Дата 16.6.2008, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Reverent я помоему как раз об этом и говорил


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1789 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.