Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Модифицирование свойства contentWindow (https://javascript.ru/forum/events/67057-modificirovanie-svojjstva-contentwindow.html)

Илья Колдунов 25.01.2017 20:13

Модифицирование свойства contentWindow
 
На странице существует iframe блок.
Необходимо:
- Убрать contentWindow как свойство
- Реализовать самописную функцию, возвращающую contentWindow с дополнительными преобразованиями.

Возможно ли это реализовать средствами JavaScript?
Спасибо.

Rise 25.01.2017 22:06

Илья Колдунов, свойство только для чтения, что за преобразования?

Илья Колдунов 26.01.2017 06:43

Поясните, пожалуйста, как оно выглядит.
Преобразование - проверка, из какой функции его вызвали. Если она не open(), то не возвращать ничего.

Rise 26.01.2017 09:04

Илья Колдунов, это свойство не модифицируется, как оно выглядит можно посмотреть в сабже, и имя open уже занято нативной функцией.

Илья Колдунов 26.01.2017 10:02

Без разницы, как называется функция. Если это SANDBOX, то его можно снять самим скриптом. Плюс, необходима полная блокировка содержимого, с исключениями:
- Скрипт в iframe работает
- Доступ в него можно получить только через самописную функцию.

А SANDBOX блокирует содержимое внутреннего скрипта.

Rise 26.01.2017 10:38

Илья Колдунов, это всё конечно интересно, но причем здесь contentWindow, и если SANDBOX блокирует содержимое внутреннего скрипта, то как тогда скрипт в iframe сможет работать он же заблокирован, почитай про contentWindow и SANDBOX и как они работают, а то сам не знаешь чего хочешь.

Илья Колдунов 26.01.2017 11:10

Я блокирую доступ к iframe для внешнего скрипта, а не внутреннего.
Я читал про iframe, атрибут SANDBOX мне не подходит. Я знаю, что через Element.prototype можно изменить работу метода. А как переопределить свойство?

И я знаю чего хочу. Необходимо, чтобы в iframe не могло пролезть ничего, кроме функции с названием [название функции]. А SANDBOX запрещает это для всех функций. Именно поэтому я пытаюсь реализовать это через переопределить contentWindow в функцию из свойства.


Часовой пояс GMT +3, время: 21:05.