У меня есть следующая настройка на моей html-странице -
parent-page
child-iframe
child-iframe и parent находятся в одном домене.
Учитывая, что обе страницы принадлежат одному домену -дочерний iframe может напрямую обращаться к объекту родительского окна и его членам и может изменять / изменять вещи по своему усмотрению - так, например, для: child-iframe потенциально может выдавать -
parent.document.body.innerHTML = "hello";
Я хочу что-то вроде "контролируемая »установка - где я хочу выборочно разрешить доступ только к JS-объектам определенного родителя. Например: я хочу полностью запретить доступ к объекту document
родителя и добавлю отдельный объект JS, который дочерний элемент iframe будет использовать для прямого разговора с родителем.
Вопросэто возможно в браузере?
Чтобы добавить некоторые детали - я попытался установить атрибут «песочница» iframe для различных значений - например, для значения по умолчанию (все отключено) - но тогда я не могу передать объекты JS напрямую ч / бparent и child-frame (и вызовите функции в этих объектах js)
Я попытался установить для песочницы «allow-same-origin» - но это то же самое, что не указывать атрибут песочницы (по крайней мере для страниц изsame-domain).
Кроме того, я не хочу использовать маршрут postMessage для моего случая использования, причина в том, что я хочу, чтобы связь была синхронной - использование postMessage означало бы, что мне нужно реорганизовать свои внутренние API длябыть асинхронным, чего я хочу избежать.
Спасибо,