В разработке веб-фронта мы часто используем контроль iframe.
Однако при управлении внутренними и внешними взаимодействиями ключевые слова, используемые каждым браузером, часто различны, что очень хлопотно. Чтобы получить объект Window в подразделении, каждый браузер имеет свои собственные спецификации, некоторые-Windows, некоторые из них являются контентами, и так далее, и, возможно, есть некоторые, которых мы не знаем.
Тем не менее, просто обратитесь к странице родительского уровня со страницы ребенка, и в исходной форме все являются Window.parent.
Затем, благодаря этой функции, мы можем передать наш собственный объект окна на родительскую страницу на детской странице, чтобы родительская страница могла легко получить доступ к детской странице, и нам больше не нужно беспокоиться о том, как получить объект окна из объекта iframe.
Не говоря ни слова, сначала посмотрим на код:
Код страницы родителей:
window.iframewindow = null; function frameready (subwindow) {window.iframewindow = subwindow; //Назначение}; <iframe src = "xx"> </iframe>Код подпаги:
$ (function () {window.parent.frameready (window);});Через простой код выше, вы можете получить доступ к объекту iframewindow на родительской странице и напрямую получить объект окна детской страницы, который очень безмозглый и очень полезный.
Что если у меня есть несколько iframes?
Эта ситуация будет немного сложнее, но это не имеет значения. Мы хотим продолжать использовать вышеуказанное решение, поэтому давайте проанализируем текущую ситуацию:
1. Нам должен нужен объект сбора, похожий на iframewindows, чтобы управлять объектами окна для всех подпажков.
2. Когда каждая страница ребенка вызывает родительский. Frameready, она должна полагаться на уникальное имя для родительской страницы, чтобы мы могли точно получить доступ к каждому iframe на родительской странице.
Тогда сейчас это просто. То, что нужно сделать, - это не что иное, как имя, номер и т. Д. Давайте посмотрим на код
window.subwindowname = "helloworldwindow"; $ (function () {window.parent.frameready (window.subwindowname, window);});Тогда родительская страница должна сделать, это рефакторинг Frameready и добавить параметр
window.iframewindows = {}; // Это становится функцией объекта FramereAdy (name, window) {window.iframewindows [name] = window;}; function getSubwindow (name) {return window.iframewindows [name];}Суммировать:
Страницы, построенные с этой схемой, имеют следующие преимущества:
1. Взаимодействие родительских страниц зависит только от ключевых слов родителей (и в предыдущем способе они зависят не только от родителей, но и от ContentWindow, Window и других неопределенных ключевых слов. Самое главное, что поддержка родителей все еще очень хороша)
2. Unified Window объекты, уменьшая запрашиваемую эталонную цепь каждый раз, когда они используются, и улучшая скорость работы
3. Самый важный момент: это то, что код намного проще написать.
Выше приведено решение для взаимодействия и совместимости JavaScript Iframe с различными браузерами, введенными редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!