Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Cross-Frame Scripting and Security


Автор: paralmix 11.6.2008, 15:59
Задача такая, есть страница - www.a.com, на ней еcть iframe: <iframe src='www.b.com' />. При загрузки страницы нужно передать параметры адресной строки www.a.com в iframe для загрузки страницы www.b.com с параметрами переданные в  www.a.com . Возможно ли это. Судя по http://msdn.microsoft.com/en-us/library/ms533028(VS.85).aspx, это никак не удасться реализовать.

Спасибо за помощь

Автор: krundetz 12.6.2008, 07:32
Из ваших обяснеий ничего не понятно откуда куда что? Попробуйте поставить задачу более внятно.
1. делаем тото
2. делеем тото
и т.д.
Может кто нибудь в тогда и ответит.

Автор: yurik_l 13.6.2008, 20:26
paralmix, вопрос задан так, будто его дали Вам в каком-нибудь учебном заведении smile.
Опишите, если не сложно, конкретно свою ситуацию.

Автор: Sannis 13.6.2008, 23:30
Возможно, один раз установить исходный URL iframe'а никто не запрещает.

Автор: Itsys 14.6.2008, 12:13
Ну если я понял правильно то алгоритм примерно такой:
1. Парсишь параметры переданные при загрузке страницы www.a.com (window.location.href) в переменную params вида (name1=val1&name2=val2&name3=val3...)
2. Изменяешь src iframe (document.getElementById('iframe').src = 'http://www.b.com?' + params)

Автор: paralmix 16.6.2008, 10:18
Попробую более точно сформулировать суть проблемы:
есть страница www.a.com/a.html на ней есть iframe c src = www.b.com/b.html. 
на www.b.com/b.html есть кнопка. при нажатии на кнопку исполняеться следующая ф-ция, для получения параметров родительского окна:
Код

function f()
{
  var a = window.parent.location.search;
  alert(a);
}


При вызове этой ф-ции появляеться ошибка permission denied. Проблем в том, что похоже нельзя обращаться к объектам DOM находящийся в другом домене (http://msdn.microsoft.com/en-us/library/ms533028(VS.85).aspx). Есть ли какая то возможность получить параметры родительского окна?

Спасибо за помощь

Автор: Sannis 16.6.2008, 13:12
Да, если поменять a и b местами - не получится. Можно передавать адрес родительского окна при загрузке iframe: src="www.b.com/b.html?a_big_key=www.a.com/a.html" и выдёргивать уже из своего адреса этот параметр.

Автор: paralmix 16.6.2008, 14:03
Цитата(Sannis @ 16.6.2008,  13:12)
Да, если поменять a и b местами - не получится. Можно передавать адрес родительского окна при загрузке iframe: src="www.b.com/b.html?a_big_key=www.a.com/a.html" и выдёргивать уже из своего адреса этот параметр.

В том то и вопрос как можно получить адрес родительского окна? (ведь передаються еще и параметры, например www.a.com/a.html?t=123)
Обращение вида window.parent.location.search генерирует ошибку доступа.

Автор: Sannis 17.6.2008, 04:23
Если я правильно понимаю ваш первый пост, то обе страницы(a и b) - ваши. Если да - то сделать так, как я написал, если нет - напишите какая из них под вашим контролем.

Добавлено через 35 секунд
P.S. Его не надо получать из дочернего, его нужно передавать ему, например указанным мной способом.

Автор: paralmix 17.6.2008, 09:53
Цитата(Sannis @ 17.6.2008,  04:23)
Если я правильно понимаю ваш первый пост, то обе страницы(a и b) - ваши. Если да - то сделать так, как я написал, если нет - напишите какая из них под вашим контролем.

Добавлено @ 04:23
P.S. Его не надо получать из дочернего, его нужно передавать ему, например указанным мной способом.

Спасибо Sannis  за помощь. Под моим контролем только страница b. Все же из за Кроссфреймовой безопасности нельзя обращться к DOM модели из разных доменов. Единственно решение - это то что вы, подсказали: передача параметров из страницы a страницы b через src.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)