Обновить фрейм что это

Каков наилучший способ перезагрузить/обновить iframe?

ОТВЕТЫ

Ответ 1

Будьте осторожны, в Firefox window.frames[] нельзя индексировать по id, а по имени или индексу

Ответ 2

Ответ 3

Если вы используете jQuery, это работает:

Я надеюсь, что это не слишком уродливо для stackoverflow.

Ответ 4

Ответ 5

Из-за той же политики происхождения, это не сработает при изменении iframe, указывающего на другой домен. Если вы настроите таргетинг на более новые браузеры, рассмотрите возможность использования обмена сообщениями HTML5 с несколькими документами. Вы просматриваете браузеры, которые поддерживают эту функцию здесь: http://caniuse.com/#feat=x-doc-messaging.

Если вы не можете использовать функциональность HTML5, вы можете следовать следующим трюкам: http://softwareas.com/cross-domain-communication-with-iframes. Эта запись в блоге также неплохо помогает определить проблему.

Ответ 6

Добавить пустое пространство также перезагружает iFrame автоматически.

Ответ 7

Уточнение позиции yajra. Мне нравится эта мысль, но ненавижу идею обнаружения браузера.

Я скорее возьму ppk-взгляд на использование обнаружения объекта вместо обнаружения браузера, (http://www.quirksmode.org/js/support.html), потому что тогда вы на самом деле проверяете возможности браузера и действуете соответственно, а не то, что, по вашему мнению, может быть в то время браузером. Кроме того, не требуется так много уродливого разбора синтаксического кода браузера, и не исключает отлично работающих браузеров, о которых вы ничего не знаете.

Итак, вместо того, чтобы смотреть на navigator.AppName, почему бы не сделать что-то подобное, фактически тестируя элементы, которые вы используете? (Вы можете использовать try <> блоки, если хотите стать еще более привлекательными, но это сработало для меня.)

Таким образом, вы можете попробовать как можно больше различных перестановок, как вам нравится или необходимо, без ошибок javascript и делать что-то разумное, если все остальное терпит неудачу. Это немного больше, чтобы проверить свои объекты перед их использованием, но IMO делает лучший и более безопасный код.

Работала для меня в IE8, Firefox (15.0.1), Chrome (21.0.1180.89 м) и Opera (12.0.2) в Windows.

Возможно, я мог бы сделать еще лучше, фактически тестируя функцию перезагрузки, но это достаточно для меня прямо сейчас.:)

Ответ 8

Метод assign() загружает новый документ.

Метод reload() используется для перезагрузки текущего документа.

Ответ 9

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

Ответ 10

Откройте его при использовании jQuery thickBox и попытайтесь повторно открыть ту же страницу в толстопанельном iframe. Затем он просто показал более раннюю страницу, которая была открыта.

Ответ 11

Используйте перезагрузку для IE и установите src для других браузеров. (перезагрузка не работает на FF) проверены на IE 7,8,9 и Firefox

Ответ 12

Я только что столкнулся с этим в хроме, и единственное, что работало, это удаление и замена iframe. Пример:

Довольно простой, не описанный в других ответах.

Ответ 13

Рассматривали ли вы добавление к URL-адресу бессмысленного параметра строки запроса?

Это не будет видно, и если вы знаете о безопасном параметре, это должно быть хорошо.

Ответ 14

Если вы используете Jquery, тогда есть один код строки.

и если вы работаете с одним и тем же родителем, то

Ответ 15

Если все вышеперечисленное не работает для вас:

Это почему-то обновило мой iframe вместо всего script. Может быть, потому, что он помещается в самом кадре, а все эти решения getElemntById работают, когда вы пытаетесь обновить кадр из другого фрейма?

Или я не понимаю это полностью и болтаю, так или иначе, это работало для меня как шарм:)

Ответ 16

Ответ 17

Если вы попробовали все другие предложения и не могли заставить их работать (например, я не мог), здесь вы можете попробовать, что может быть полезно.

HTML

Сначала я попытался сэкономить время на RWD и кросс-браузерном тестировании. Я хотел создать быструю страницу, в которой размещалась куча iframe, организованная в группы, которые я бы показывал/скрывал по своему усмотрению. Логически вы хотите иметь возможность легко и быстро обновлять любой данный фрейм.

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

EDIT: Я понял, что это не «обновляет» iframe, как я надеялся. Однако он перезагрузит исходный источник iframe. Все еще не могу понять, почему я не мог получить какие-либо другие варианты работы.

UPDATE: Причина, по которой я не мог получить какие-либо другие методы для работы, заключается в том, что я тестировал их в Chrome, а Chrome не разрешает вам получать доступ к содержимому iframe (Объяснение: Это вероятно, что будущие выпуски Chrome поддерживают contentWindow/contentDocument, когда iFrame загружает локальный файл html из локального html файла?), если он не происходит из того же места (насколько я понимаю). При дальнейшем тестировании я также не могу получить доступ к contentWindow в FF.

ИЗМЕНЕННЫЙ JS

Ответ 18

Использование self.location.reload() перезагрузит iframe.

Ответ 19

Для целей отладки можно открыть консоль, изменив контекст выполнения на фрейм, который он хочет обновить, и выполните document.location.reload()

Ответ 20

Ответ 21

Теперь, чтобы выполнить эту работу на chrome 66, попробуйте следующее:

Источник

Какой лучший способ перезагрузить / обновить iframe?

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

будьте осторожны, в Firefox window.frames[] нельзя индексировать по id, но по имени или индексу

При использовании jQuery это работает:

Я надеюсь, что это не слишком уродливо для stackoverflow.

Добавьте пустое место и перезагрузите iFrame автоматически.

Я только что столкнулся с этим в Chrome, и единственное, что сработало, это удаление и замена iframe. Пример:

Довольно просто, не охвачено другими ответами.

Метод assign () загружает новый документ.

Метод reload () используется для перезагрузки текущего документа.

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

Я предпочитаю ppk использовать обнаружение объектов вместо обнаружения в браузере ( http://www.quirksmode.org/js/support.html ), потому что тогда вы фактически тестируете возможности браузера и действуете соответственно, а не на что, на ваш взгляд, способен браузер в то время. Кроме того, не требуется так много разборов паролей идентификатора браузера, и не исключаются браузеры с отличными возможностями, о которых вы ничего не знаете.

Итак, вместо того, чтобы смотреть на navigator.AppName, почему бы не сделать что-то подобное, на самом деле тестирование элементов, которые вы используете? (Вы можете использовать блоки try <>, если хотите стать еще интереснее, но у меня это получилось.)

Таким образом, вы можете попробовать столько разных перестановок, сколько вам нужно или необходимо, не вызывая ошибок javascript, и сделать что-то разумное, если ничего не помогает. Это немного больше работы для проверки ваших объектов перед их использованием, но, IMO, делает для лучшего и более отказоустойчивого кода.

У меня работали в IE8, Firefox (15.0.1), Chrome (21.0.1180.89 m) и Opera (12.0.2) в Windows.

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

Теперь, чтобы сделать эту работу на Chrome 66, попробуйте это:

Узнайте об этом, когда используете jQuery ThickBox и пытаетесь открыть ту же страницу в iframe. Тогда он просто показал предыдущую страницу, которая была открыта.

Используйте перезагрузку для IE и установите src для других браузеров. (перезагрузка не работает на FF) протестирована на IE 7,8,9 и Firefox

Если вы используете Jquery, то есть одна строка кода.

и если вы работаете с тем же родителем, то

Если все вышеперечисленное не работает для вас:

Это почему-то обновило мой iframe вместо всего скрипта. Может быть, потому что он помещен в сам фрейм, в то время как все эти решения getElemntById работают, когда вы пытаетесь обновить фрейм из другого фрейма?

Или я не понимаю этого полностью и говорю бессмысленно, в любом случае это работало для меня как очарование 🙂

Вы рассматривали добавление к URL бессмысленным параметром строки запроса?

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

Если вы перепробовали все другие предложения и не смогли заставить их работать (как я не смог), вот что вы можете попробовать, что может быть полезно.

HTML

Сначала я решил попытаться сэкономить время с помощью RWD и кросс-браузерного тестирования. Я хотел создать быструю страницу, содержащую кучу фреймов, организованных в группы, которые я буду показывать / скрывать по желанию. По логике вы хотели бы иметь возможность легко и быстро обновить любой данный кадр.

Я должен отметить, что проект, над которым я сейчас работаю, который используется на этом тестовом стенде, это одностраничный сайт с проиндексированными местоположениями (например, index.html # home). Возможно, это было связано с тем, что я не смог заставить другие решения обновить мой конкретный кадр.

ОБНОВЛЕНИЕ: причина, по которой я не смог заставить работать другие методы, заключается в том, что я тестировал их в Chrome, и Chrome не позволит вам получить доступ к содержимому iframe (Объяснение: Вероятно ли, что будущие выпуски Chrome будут поддерживать contentWindow / contentDocument, когда iFrame загружает локальный html-файл из локального html-файла? ), если он не происходит из того же места (насколько я понимаю). После дальнейшего тестирования я не могу получить доступ к contentWindow в FF.

Источник

Фреймы

Термин «фрейм» пришел к нам из английского языка. В переводе это слово означает «рамка» и представляет собой отдельную область окна. По своей структуре такой участок является полностью законченным HTML-документом.

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

История технологии

Сегодня можно констатировать, что решение об отходе от работы с фреймовой технологией окончательно принято. На сайте https://www.w3.org/TR/html5-diff/#obsolete-elements четко указано, что обычные теги для создания такой структуры frame, frameset и noframes являются устаревшими. В качестве аргумента приводятся данные о том, что использование такой структуры отрицательно отражается на юзабилити сайтов и их доступности в сети.

Но современные технологии поддерживают элемент IFRAME. Его использование позволяет вставлять фреймы в текстовые блоки на страницах. При этом такие элементы имеют возможность выравнивания относительно самого текста. Важный момент: изменять размеры встроенных фреймов нельзя в принципе. У них отсутствует соответствующий атрибут для изменения размеров.

В будущем без скачкообразных изменений технологии дальнейшее применение фреймов маловероятно. И стоит помнить, что ведущая организация по стандартизации интернет-технологий – W3C – явно указала на то, что такие структуры не должны использоваться разработчиками сайтов.

То есть фреймы в принципе не должны применяться для структуры страниц при создании новых ресурсов. А вот при поддержке и доработке имеющихся сайтов знание особенностей технологии и их использование будет весьма полезным и продуктивным.

Преимущества фреймов

Среди преимуществ фреймовой технологии – простота использования, высокая скорость работы, возможность точного позиционирования информации в определенных местах окна.

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

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

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

Возможные недостатки

Проблемы работы сайтов с использованием фреймов накапливались постепенно, но на сегодня они достигли порогового значения. Среди основных недостатков выделяют:

Индексирование фреймов поисковиками

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

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

Еще одна проблема заключается в том, что часто основная страница контейнерной структуры содержит только заголовок, описание метатегов и тег FRAMESET. И это вроде бы логично – ведь осмысленное содержание размещается в отдельных документах. Именно их посетитель сайта увидит на странице в рамках.

Но вот поисковый робот такую страницу практически никогда не индексирует. Он не находит на ней содержания, полезного для посетителей. Поисковые боты настроены таким образом, что они стараются получить и проиндексировать информацию, размещенную внутри тега body. Именно там происходит поиск полезного для пользователя контента. А на фреймовой странице такого тега нет, он заменяется на FRAMESET.

Частично эту проблему можно решить с применением NOFRAMES. Но на многих сайтах при обращении к нему отдается только информация о том, что браузер не поддерживает фреймы. И для просмотра страницы нужно использовать другую программу.

Такие случаи создают много проблем пользователям, которые при переходе на сайт не видят меню и другую информацию, которая должна отображаться. В случае размещения на сайте фреймов его параметры с точки зрения SEO снижаются. При этом статистика поведения пользователей говорит о том, что авторитет ресурса у поисковых систем падает. Это однозначно отрицательно сказывается на посещаемости сайтов.

Особенно тяжело поисковым системам и индексирующим ботам обрабатывать вложенные и множественные кадровые структуры. Тот факт, что каждый контейнер имеет все признаки отдельного документа, но не содержит полноценную навигационную и другую информацию, дополнительно усложняет ситуацию.

Облегчить работу поисковых систем можно за счет применения правильной перелинковки на страницах. В этом случае необходимо продублировать все ссылки меню, чтобы их можно было найти внутри каждой отдельной части страницы. Но это заметно усложняет и замедляет работу по оптимизации сайта и обновлению информации на нем.

Опыт многих оптимизаторов и вебмастеров также говорит о том, что страницы на фреймах не получают высоких мест в поисковой выдаче. Это происходит даже в том случае, если они попадают в базу индексации.

Особенности продвижения сайтов во фреймах

Некоторые системы поиска неправильно или очень некорректно индексируют файлы с фреймовой структурой. В результате индексная база заполняется не адресами родительских ресурсов (так, как должно было быть), а ссылками на дочерние сайты.

Чтобы минимизировать проблемы индексации сайтов, основанных на фреймах, при их описании применяются специальные теги и параметры. Основным элементом контейнерной структуры является frameset. Именно он заменяет в исходном коде стандартный body;. Каждый отдельный контейнер в структуре описывается frame. Его количество в коде страницы отвечает числу отдельных участков, отображающихся в окне браузера при просмотре.

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

Источник

Фреймы

Frame — это отдельная область окна, являющаяся по своей структуре законченным документом HTML. Понятие пришло к нам из английского языка и переводится как «рамка». Фрейм — это структура, разделяющая окно браузера на отдельные участки и содержащая в себе самостоятельную и полноценную страницу. Данная технология программирования продолжает вызывать много споров, хотя пик ее популярности прошел.

Современное положение технологии

Решение о прекращении работ с фреймовой структурой окончательно принято W3C (ведущей организацией по стандартизации интернет-технологий), обычные теги для создания frame, noframes, frameset признаны устаревшими и не поддерживаются в HTML5. Данная позиция подтверждается данными об отрицательном влиянии такой структуры на возможности использования сайтов (юзабилити) и их доступность в Сети. При этом элемент iframe современные технологии поддерживают, его использование дает возможность включать фреймы в текстовые блоки на страницах и выравнивать их положение относительно самого текста. При этом важным моментом остается то, что у фреймов отсутствует атрибут, необходимый для изменения размеров, и изменить размер встроенного фрейма в принципе невозможно.

Перспективы использования технологии

Без скачкообразных изменений технологии в будущем применение фреймов маловероятно, что также подтверждается позицией W3C. При создании новых ресурсов фреймы не должны использоваться в структуре страниц. При этом при доработке и поддержке текущих сайтов особенности технологии и их применение могут быть весьма продуктивными и полезными.

Преимущества фреймов

Ряд неоспоримых преимуществ использования фреймов объясняет, зачем они в принципе нужны и почему до сих пор активно применяются.

Удобство использования. Фреймовые технологии просто использовать, они имеют высокую скорость работы и позволяют точно позиционировать информацию в необходимом месте окна.

Экономия трафика. При использовании фреймов объем передаваемого трафика сокращается, так как для обращения к другому информационному разделу обычно обновляется только один участок страницы, а не весь ее код.

Дополнительные возможности навигации. Фреймовая структура обеспечивает новые интересные возможности использования контента. Неоспоримым плюсом является то, что внутри одного окна в соседних фреймах можно смотреть совершенно разную информацию. Поиск по фрейму абсолютно равнозначен той же операции на новой странице браузера.

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

Возможные недостатки

Проблемы работы сайтов с использованием фреймов имеют накопительную природу. На сегодняшний день они достигли порогового значения. К основным минусам можно отнести следующие:

неудовлетворительное юзабилити. На сегодняшний день доля пользователей планшетов и мобильных устройств с небольшим разрешением экрана стремительно растет и заметно превышает число посетителей, посещающих сайты с ноутбуков и стационарных компьютеров. Применение фреймов создает проблемы в части адаптации страниц при их отображении на разных устройствах. Существующая проблема практически не имеет решений;

снижение доступности сайта для разных программ. Увеличение числа дополнительных программ, например экранных дикторов, выявляет снижение доступности информации для считывания;

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

некорректное отображение страниц. Фреймовая структура часто имеет в браузере некорректный дизайн. Это обуславливают особенности технологии. Использование фреймов при html-верстке страниц с точки зрения SEO крайне нежелательно;

некорректная индексация поисковыми системами. Формирование одной страницы из нескольких полноценных документов приводит к затруднениям в работе поисковых систем. При индексации могут появляться существенные ошибки. В результате наблюдается неверное определение адресов и тематики, невключение критически значимого контента в индексацию;

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

Индексирование фреймов поисковыми системами

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

Возможные неудобства для пользователя. Как правило, при переходе на внутреннюю часть страницы пользователю недоступно меню и другие механизмы навигации. Это создает массу сложностей при работе. Решение обновить или перезагрузить фрейм в данном случае не поможет, так как вся навигация размещается в другом контейнере структуры. Таким образом, параметры сайта, содержащего фреймы, с точки зрения SEO значительно снижаются. Статистика поведения пользователей свидетельствует о снижении авторитета сайта у поисковых систем, что однозначно отрицательно сказывается на посещаемости.

Почему сайты с фреймами не индексируются. Основная страница содержит заголовок, описание всех метатегов и тег frameset, полное содержание размещено в отдельных документах, которые пользователь и увидит в рамке. Поисковые системы настроены так, чтобы получить и проиндексировать информацию основной страницы с тегом body. Именно там происходит поиск необходимого для пользователя контента. Фреймовая страница такой тег не содержит, он заменяется на frameset, вследствие чего поисковый бот считает страницу неполезной и не индексирует ее. Особенно тяжело поисковым системам работать с множественными и кадровыми структурами. Тот факт, что каждый имеющийся контейнер отвечает признакам отдельного документа, но не содержит полноценную информацию и навигацию, дополнительно усложняет задачу.

Пути решения. Частично решить проблему можно с помощью noframes. Однако при обращении к данному элементу на многих сайтах определяется только информация о том, что браузером не поддерживаются фреймы, и для просмотра страницы необходимо использовать другую программу. Правильная перелинковка на страницах может скорректировать работу поисковых систем. Это достигается за счет дублирования всех ссылок меню, чтобы они были доступны в каждой части страницы. Но это замедлит и усложнит работу по обновлению информации на сайте и его оптимизации. Однако опыт многих веб-мастеров и оптимизаторов показывает, что даже в случае попадания в базу индексации страницы на фреймах не получают высоких мест в выдаче поиска.

Продвижение сайтов во фреймах

Корректным считается заполнение поисковых баз адресами родительских сайтов. В результате неправильной индексации фреймовой структуры зачастую поисковики заполняются ссылками на дочерние ресурсы. Для минимизации проблем индексации при описании сайтов на фреймах используются специальные параметры и теги. В контейнерной структуре основным элементом является frameset, который заменяет стандартный body в исходном коде. Каждый контейнер структуры описывается frame. Его число в коде страницы соответствует количеству самостоятельных участков, которые отображаются при просмотре в браузере. Указанные теги размещаются на главной странице, затем содержание дублируется внутри каждого из них.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *