Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Политика общего происхождения и редирект
 
 автор: dump   (01.08.2010 в 08:59)   письмо автору
 
 

Как политика общего происхождения в JavaScript согласуется возможностью осуществлять редиректы?

  Ответить  
 
 автор: АЯ   (01.08.2010 в 15:13)   письмо автору
 
   для: dump   (01.08.2010 в 08:59)
 

Самым прямым образом согласуется.
Имеется доступ к свойствам только ТЕКУЩЕГО документа, в том числе и к свойству document.location.href, которое можно как прочитать (read), так и изменить (write).

Но вот после изменения этого свойства происходит тот самый редирект и в окно браузера грузится новый документ, доступ к свойствам которого из предыдущего невозможен.

  Ответить  
 
 автор: dump   (03.08.2010 в 11:59)   письмо автору
 
   для: АЯ   (01.08.2010 в 15:13)
 

Так ведь в таком случае получается, что можно средствами JavaScript загрузить в irame другую страницу?

  Ответить  
 
 автор: АЯ   (03.08.2010 в 12:47)   письмо автору
 
   для: dump   (03.08.2010 в 11:59)
 

IFRAME - это элемент ТЕКУЩЕГО документа.
Все атрибуты/свойства этого IFRAME вполне доступны ТЕКУЩЕМУ документу.
В том числе и атрибут/свойство SRC.

Значение SRC можно прочитать/установить.
Но вот к документу, который загружается в IFRAME, доступ возможен, если только соблюдаются принципы "общего происхождения" - если только документ имеет ТО ЖЕ доменное имя.

Вот Вам пример:
1) изменяем SRC ифрейма на чужой сайт
2) после окончания загрузки узнаём сначала SRC (это - можно), а затем пытаемся узнать document.location.href загруженного документа, который должен иметь ТО ЖЕ значение, что SRC ифрейма (но этого - НЕЛЬЗЯ, ибо документ в ифрейме с другого домена):
<script>var ST = 1;</script>
<body onload="document.getElementById ('myIFR').src = 'http://google.com/'">
<iframe id="myIFR" onload="if (ST) {ST = 0; return} alert (document.getElementById ('myIFR').src); alert (window.frames.myIFR.document.location.href)"></iframe>
</body>

  Ответить  
 
 автор: dump   (03.08.2010 в 16:13)   письмо автору
 
   для: АЯ   (03.08.2010 в 12:47)
 

Понятно. Но вот тут же появилось два вопроса:
1) А с <Frame> тоже должна пройти загрузка через установку src?
2)А такие ограничения отсутствуют в пользовательских скриптах(букмарклетах, greesmonkey)?

  Ответить  
 
 автор: АЯ   (03.08.2010 в 16:26)   письмо автору
 
   для: dump   (03.08.2010 в 16:13)
 

>1) А с <Frame> тоже должна пройти загрузка через установку src?
Абсолютно то же самое, что и с <IFRAME>
Повторяю - любой ТЕГ (со всеми его свойствами) принадлежит ТЕКУЩЕМУ документу.
А вот document, загруженный в этот тег - может управляться из ТЕКУЩЕГО документа ТОЛЬКО в случае единого происхождения с текущим.

>2)А такие ограничения отсутствуют в пользовательских скриптах(букмарклетах, greesmonkey)?
Что "обезьянка", что HTA - это "совсем другая песня".
Это уже не чистый Javascript - там нет практически никаких ограничений - делай что хочешь.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования