Многие люди всегда думали, что было бы здорово, если бы они могли управлять iframe по своему усмотрению. Таким образом, статические страницы имеют возможность реализовать унифицированный многостраничный макет, эквивалентный включению и требованию включения в фоновые динамические страницы php, jsp и asp.
С помощью Javascript мы можем динамически загружать содержимое html-страницы, на которую указывает атрибут src объекта iframe, как фон. Такая операция требует предоставления двух страниц: одна страница — это страница, на которой расположен iframe ( имя страницы: iPage.html ), а другая страница — это страница, на которую указывает атрибут src iframe ( имя страницы: srcPage.html ).
iPage.html, dom в <body>:
,<body>
Давайте обсудим, как работать с двумя вышеуказанными страницами с помощью JS под IE, а затем обсудите метод Firefox и, наконец, укажите совместимость с IE и Firefox. Метод работы браузера с объектом iframe.
Всем известно, что iframe — это нестандартный тег HTML. Это тег с несколькими макетами, запускаемый браузером IE. Позже Mozilla также поддержала этот тег. (Сплетни, хе-хе)
1. IE получает его через document.frames["IframeName"]. Пример: мы выводим содержимое h1 в srcPage.html в iPage.html. JS выглядит следующим образом
кода на страницу, похоже, не выводит желаемый материал. Почему? Я еще не разобрался с этим. Я просто обычно добавляю window.onload, и результат появится (Примечание: в это событие записан код JS). Может ли кто-нибудь, кто знает об этом, рассказать мне? Почему после изменения код выводится в IE, но document.frames не определен в Firefox.
— contentWindow, код:
Этот метод прошел тесты ie6, ie7, firefox2.0 и firefox3.0. эй-эй. (После проверки в Интернете я обнаружил уязвимость переполнения буфера в Mozilla Firefox iframe.contentWindow.focus, которая создает риск атак путем внедрения скриптов.
Позже я услышал, что это можно предотвратить в фоновом режиме, и я почувствовал облегчение. Однако я все равно надеюсь, что новая версия Firefox сможет решить эту проблему.)
3. Измените содержимое заголовка h1 в srcPage.html
доступ к нему через contentWindow. Узлы такие же, как и раньше.
Mozilla поддерживает стандарт W3C для доступа к объекту документа iframe через IFrameElmRef.contentDocument . С помощью этого стандарта вы можете написать на один документ меньше, код:
Теперь доступен метод, совместимый с этими двумя браузерами, который заключается в использовании метода contentWindow.
эй-эй! Могу ли я управлять iframe по своему усмотрению? Если вы по-прежнему чувствуете себя некомфортно, вы можете даже переписать содержимое iframe.
С помощью designMode (переведя документ в редактируемый режим дизайна) и contentEditable (установив редактируемый контент) вы можете переписать содержимое iframe. Код:
Информацию об этих двух объектах см. по адресу: http://msdn.microsoft.com/en-. us/library/ms533720(VS.85).aspx
Firebug проверяет производительность приведенного выше кода, как показано на рисунке.
Закомментируйте iObj.document.designMode = 'On';
iObj.document.contentEditable = true,
Эффект не изменился, а эффективность использования времени почти в три раза выше, чем до аннотации. эй-эй. Эти два объекта относятся к методам записи, используемым некоторыми людьми в Интернете для перезаписи содержимого iframe. На самом деле нет необходимости использовать designMode и contentEditable, если нет других потребностей.
. С учетом вышеизложенных принципов реализовать это довольно просто, просто установите значение высоты iframe равным значению высоты документа внутри него. Код:
из-за этого технического термина в Интернете, эй, вонючий!
Справочные материалы:
https://developer.mozilla.org/cn/Migrate_apps_from_Internet_Explorer_to_Mozilla
http://msdn.microsoft.com/en-us/library/ms533690(VS.85).aspx