LINUX.ORG.RU

Доступ к атрибутам одного фрейма из другого


0

0

Возникла такая задачка. Есть два фрейма (скажем, A и B), во фрейме A открывается произвольная ссылка, после чего производится несколько переходов по ссылкам на странице внутри этого фрейма. Теперь необходимо во фрейме B выполнить js-код, который позволит получить URL, innerHTML и innerText документа, открытого во фрейме A.

Если пытаться получить доступ к этим атрибутам в FF, то возникает ошибка "permission denied", так как браузер считает, что во фрейме A находится чужой контент. По сообщению об ошибке я нагуглил рекомендацию вызвать в скрипте что-то вроде netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead&qu ot;), однако во-первых, как я понял, понадобилось менять настройки браузера, во-вторых, это сопровождается кучей предупреждений о нарушении безопасности (хотя я не собираюсь ничего разрушать в системе), а в-третьих, похоже, непереносимо. Наконец, это просто не работает.

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

Таких решений нету потому, что иначе была бы большая дырка в безопасности. Проблему можно решить только понижением уровня защиты броузера, благо в IE это делается просто.

anonymous
()
Ответ на: комментарий от anonymous

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

Мне всего лишь нужно прочитать URL документа в соседнем фрейме той же страницы. Неужели нельзя открыть доступ исключительно к этому свойству? Это ведь не требует доступа ни к кукам, ни к приватной информации, ни к настройкам браузера. Где здесь дыра?

Опять же, у фрейма есть стандартный атрибут src, к которому можно получить доступ. Но почему он не меняется, когда пользователь переходит по ссылкам внутри фрейма? Или это тоже требование безопасности?

Наконец, расширения FF (тот же FireBug) каким-то образом получают доступ ко всем атрибутам без предупреждения пользователя. Получается, это тоже дыра?

> Проблему можно решить только понижением уровня защиты броузера, благо в IE это делается просто.

А в фоксе, конки и опере? Хотелось бы кроссбраузерное решение...

eugine_kosenko ★★★
() автор топика
Ответ на: комментарий от eugine_kosenko

> Мне всего лишь нужно прочитать URL документа

Тогда угроза конфиденциальности %) Но вы ведь сначал и о innerHTML писали.

> Наконец, расширения FF (тот же FireBug) каким-то образом получают доступ ко всем атрибутам без предупреждения пользователя. Получается, это тоже дыра?

Если устанавливать левые расширения то да, на то они и расширения.

> Хотелось бы кроссбраузерное решение...

Такого пока не придумали.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.