Я хочу встроить контент сторонних разработчиков, который будет html-страницей, внутри моего html-сайта. Я думал об использовании подхода iframe, в котором я буду вставлять стороннюю html-страницу внутри своего сайта в качестве iframe.
Мотивация использования iframes заключалась в том, что я не знаю, какие библиотеки они могут использовать, или то, что они могут писать. Я хотел, чтобы их логика была отдельной от моей. Iframe исполняет мое желание.
Но теперь у меня есть проблема, если я хочу, чтобы браузер Back/Next Functionality для любой навигации внутри iframe, из-за маршрута будет очень сложно поддерживать. В то же время сохранение состояния iframe при обновлении родительской страницы будет довольно жестким.
Итак, в первую очередь, подход iframe? Если да, то как мне обслуживать браузер назад/далее?
Ну, вы можете управлять кнопкой back/forward с помощью JavaScript следующим образом:
iframe.contentWindow.history.back();
iframe.contentWindow.history.forward();
Большая проблема заключается в том, что включенная страница может запретить возможность включения в iframe (если вы включите страницу с таким поведением в iframe, она загрузится через вашу страницу - проверьте, например, это qeustion).
window.postMessage
, две страницы могут взаимодействовать даже через доменные барьеры; поэтому iframe должен будет указывать родительской странице, какой фактический адрес он отображает в настоящее время при каждом изменении, - таким образом, родительская страница может создать элемент iframe с «правильным» адресом, загруженным с самого начала, когда он перезагружается. [...]