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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> iframe обмен данными 
V
    Опции темы
neoks
Дата 20.12.2011, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Даже не знаю как сказать, да и как это называется, помнится раньше такое делал но помню смутно.
Задумка сделать скрипт для обработки веб страниц, для этого нужно чтоб с документом и iframe была связь.

Вообще задачка такова, есть родительское окно и в нем iframe.
В родительском окне есть панелька инструментов, при клике на инструмент iframe должен понять что я выбрал инструмент и работать с ним.
Дальше когда я наколдовал в iframe я нажал завершить действие и iframe должен передать родительскому окну что все готово.

И так мне интересует 2 метода.
1. Как вызвать функцию в iframe
2. Как вызвать функцию из iframe

Я искал в гугле, нашел какие та примеры, но как всегда они не рабочие )

Надеюсь на вашу помощь ) Спасибо  smile 
PM MAIL   Вверх
actuator
Дата 21.12.2011, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если снаружи пролезть во фрейм - у элемента iframe есть свойства contentWindow и contentDocument. Если изнутри фрейма пролезть в родителя - у его window есть parent, ссылающийся на window родителя. Окно верхнего родителя имеет parent, равный self (то есть, оно само себе родитель). При нарушении Same Origin Policy вызывается исключение, так что в чужие страницы пролезть не удастся.
PM MAIL   Вверх
neoks
Дата 21.12.2011, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нашол решение

Для ифрейма 
Код

document.getElementById('iframeid').contentWindow.lol();

Из ифрейма 
Код

parent.window['myvar'] = "test";


Работает на сафари и firefox, в гугле хром пишет

Unsafe JavaScript attempt to access frame with URL

Как быть ?
PM MAIL   Вверх
actuator
Дата 21.12.2011, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возможно, у хрома безопасность построже. Попробуй не переменные писать, а вызывать функции.
PM MAIL   Вверх
neoks
Дата 21.12.2011, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Тоже самое, только теперь еше ошибка прибавилась.

Код

document.getElementById('iframeid').contentWindow.lola();


Unsafe JavaScript attempt to access frame with URL
Uncaught TypeError: Property 'lola' of object [object DOMWindow] is not a function


Код

document.getElementById('iframeid').contentWindow['myvariframe'] = 'test';


Unsafe JavaScript attempt to access frame with URL
PM MAIL   Вверх
actuator
Дата 21.12.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ты ведь просто файл открываешь? Я залил на сервер (iframe загружается из файла на том же домене) - все заработало и так и этак.
PM MAIL   Вверх
neoks
Дата 21.12.2011, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На сервер я не заливал, тестил из рабочего стола, все в одной папке находится.
Тоесть если я залью на сервак то все будет работать ?
PM MAIL   Вверх
$дмитрий
Дата 21.12.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

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



Цитата

На сервер я не заливал, тестил из рабочего стола, все в одной папке находится.

Тестировать нужно на сервере
PM MAIL   Вверх
magelan
Дата 22.12.2011, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



Цитата(neoks @ 20.12.2011,  23:44)
Даже не знаю как сказать, да и как это называется,

Называется это AJAX, как ни странно.

Лучше не пользоваться iframe. Когда браузеры не умели делать HttpRequest, это был единственный выход, сейчас нормальный, а не древний аякс могут все, так что не ломайте копья.
PM MAIL   Вверх
neoks
Дата 22.12.2011, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


 




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


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

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