Я нашел метод , который документирует междоменную связь с iframes , и я решил, что попробую использовать это для достижения высокой цели - заставить iframe автоматически изменять размер при изменении содержимого изменить.
По сути, вот мой план (я знаю, что это немного глупо).
У меня есть контроль как над родительской страницей, так и над дочерней страницей, но они будут загружаться в разные домены (и фактически один будет http, а другой https).
Внутри iframe у меня есть функция, которая будет запускаться при загрузке документа, а затем периодически после этого, чтобы получить высоту документа, и установить ее в качестве значения фрагмента URL (то есть что-то вроде https://blahblah.com/#h-768)
В родительском окне у меня есть функция, которая будет периодически проверять URL-адрес iframe, захватывать хеш-тег, анализировать высоту и соответствующим образом изменять высоту iframe.
Большая загвоздка заключается в следующем: у iframe нет идентификатора или имени, связанного с ним, , и я, вероятно, не могу это изменить.
В действительности, iframe изначально будет находиться в том же домене. Он будет использовать document.write для создания функции опроса iframe в родительском окне (потому что я фактически солгал раньше, когда сказал, что у меня есть контроль над родительской страницей), а затем он перейдет на страницу, на которой я на самом деле интересует.
Итак, настоящий вопрос в том, как может iframe дать себе имя или идентификатор ?
Я пробовал такие вещи (используя jQuery):
$(document).ready(function() {
// Try changing the name
$(self).attr("name", "myframe");
$(self).attr("id", "myframe");
});
Проблема в том, что она не работает.
Есть мысли?
ПОЯСНЕНИЯ
Родительская страница будет выглядеть примерно так: http://mysite.com,, а iframe будет изначально , будет http://mysite.com/iframe.
Эта начальная страница iframe является просто фиктивной страницей, которая:
- Дает элемент
- Создает новый элемент на родительской странице, который выполняет опрос изменения размера, а затем
- ли
window.location = "http://my-real-app-location.com"
На новой странице будет обновлен фрагмент URL с текущей высотой, в результате чего URL-адрес iframe будет выглядеть примерно так: http://my -real-app-location.com / # h-800 (это означает, что Высота документа - 800 пикселей.)
Скрипт, который фиктивная страница, созданная на родительской странице, должна захватить этот фрагмент URL и соответствующим образом изменить высоту iframe.