Вопрос по height, xss, iframe – JavaScript для записи iframe, в приложении iframe установите текущую высоту в url # h700 для 700px и т. д .; затем используйте цикл, чтобы прослушать это изменение на хост-сайте "в javascript", чтобы прочитать src = "url # h700" и установить для него высоту iframe.

7

прос о том, как сделать так, чтобы ваш iframe соответствовал 100% вашего контента (используя JavaScript), уже дан ответ на форуме ...для фреймов, отображающих контент только из одного домена.

Мои вопросы: возможно ли изменить размер iframe, чтобы он соответствовал содержанию, если атрибут iframe src предназначен для страницы за пределами домена страницы, содержащей фрейм? Функции безопасности браузера, связанные с межсайтовым скриптингом, не позволяют мне получить доступ к объекту документа для iframe.

Я ищу любое творческое решение. Одна из моих мыслей состояла в том, чтобы как-то обнаружить, что полосы прокрутки были видны в iframe, и постепенно увеличивать высоту, пока их не было. К сожалению, я не могу найти способ обнаружить видимые полосы прокрутки. Идеи?

Обратите внимание, что я ищу решение на стороне клиента.

Ответы:

Дейв

Проблема все еще существует - я не знаю высоту удаленного документа заранее, поэтому я не могу установить его из базы данных или значения строки запроса.

dusoft

100% на iframe в CSS не будет устанавливать его на 100% контентавнутри iframe, но относительно страницы или содержащего элемента (то есть, div или что-то).

Ваш Ответ

6   ответов
0

чены в iframe, но тогда пользователь не сможет прокрутить.

это предотвращение JS / XSS, так что пройдите через это и попробуйте извлечь контент на стороне сервера и передать его через локальное соединение.

0

1) PHP сохранить удаленную страницу в локальный HTML-файл, используяfile_get_content() или используя CURL. 2) Javascript загружает локальный файл в iframe - теперь он локальный и проблемы безопасности не применяются.

Если есть javascript vars или Session vars (которые не могут быть извлечены из удаленного контента), вы можете по крайней мере использовать эту технику для запроса высоты документа вашего локального файла, соответственно установить iframe, а затем загрузить удаленный URL в измененный размер iframe.

Cavat: у вас нет возможности узнать URL-адреса для изменения страницы на удаленной странице, поэтому вы можете использовать эту технику только на первой странице. Если удаленные страницы имеют одинаковую высоту, это не проблема.

0

JavaScript для записи iframe, в приложении iframe установите текущую высоту в url # h700 для 700px и т. д .; затем используйте цикл, чтобы прослушать это изменение на хост-сайте "в javascript", чтобы прочитать src = "url # h700" и установить для него высоту iframe.

1

чтобы он соответствовал содержанию, если атрибут iframe src предназначен для страницы вне домена страницы, содержащей фрейм?

Можно обойти ограничение между сайтами и установить для iframe высоту содержимого, но заставить его работать может быть немного неловко.

Решение заключается в обходе модели безопасности путем размещения самого содержимого iframe на том же сервере, что и родительская страница, с которой он может взаимодействовать. Я ответил на аналогичный вопрос на этот вопрос раньшеВот, в котором подробно рассказывается о тонкостях настройки всего этого.

Предостережение в отношении описанного подхода заключается в том, что у вас должны быть средства для передачи содержимого iframed себе в iframe страницу на родительском сервере. Это обычно достижимо, когда контент iframed существует как часть согласованного партнерства между сайтами, но YMMV.

1

похожий вопрос)

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

Хотя оповещение сайта встраивания о высоте сторонней веб-страницы, когда она встроена в страницу, кажется безвредным, это может привести к утечке информации о сайте встраивания, которую пользователь браузера хочет сохранить в тайне. Например,http://www.facebook.com/ отображается по-разному в зависимости от того, вошли ли вы в систему, поэтому, если мой веб-сайт может работать на высоте<iframe src="http://www.facebook.com/"> тогда я могу понять, являетесь ли вы пользователем Facebook, что вы, вероятно, не хотите, чтобы я знал.

Утечка информации будет похожа на печально известнуюУтечка истории CSS какие производители браузеров должны были подключить.

0

вы пытаетесь обойти функцию безопасности, которая была установлена ​​по уважительной причине ...

Изменение размера должно быть через скрипт? Вы можете перенаправить на страницу, где размер iframe берется из строки запроса, базы данных, файла конфигурации и т. Д.

Похожие вопросы