Страницы: 1
Привет.
Хочу довавить к текущей странице код "<iframe src=mypage.ru></iframe>".
Все делается в плагине CustomButtons.
var fr=document.createElement('iframe'); fr.setAttribute('src','http://ya.ru'); window._content.document.body.appendChild(fr);
Такой код делает редирект всей страницы на ya.ru.
Скажите как сделать,что б внизу страницы добавился мой блок?
Добавлено Mon Feb 11 11:42:54 2008 :
Редирект происходит из-за скрипта на странице ya.ru.
Если сделать src="mypage.ru" то фрейм подружается,но не отображается,скажите как сделать чтоб его видно было?
Отсутствует
Если написать так
var fr=document.createElement('iframe'); fr.setAttribute('src','http://ya.ru'); window._content.document.body.appendChild(fr);
то во фрейм грузятся данные,но он не отображается.
Если написать так
var fr=document.createElement('IFRAME'); fr.setAttribute('src','http://ya.ru'); window._content.document.body.appendChild(fr);
то фрейм отображается,но данные не загружает.
Скажите как сделать чтоб загружал данные и отображался.
Отсутствует
var doc = getBrowser (). contentDocument; var fr = doc.createElement('iframe'); fr. setAttribute ('src','http://ya.ru'); doc. body. appendChild (fr);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Скрипт на странице не позволит запихнуть её во фрейм: при обнаружении любых фреймов скрипт перегружает всю страницу (поэтому предыдущий совет тоже не работает, как нужно). Можно сделать на Аяксе, но для начала несколько соображений о старом коде.
Во-первых, объект window._content устарел - лучше писать window.content (см. здесь)
Во-вторых, для совместимости с грядущей третьей версией, код создания элемента нужно переписать, потому что в этой версии вставлять в документ можно только те элементы, которые в этом же документе созданы - иначе их сначала нужно импортировать.
В третьих, может быть будет логичнее сначала вставить элемент, потом грузить страницу.
Далее - у iframe есть свойство src (см. здесь), поэтому проще обратиться к нему напрямую.
Поэтому, если Вы будете делать такой код для другой странички, которая не принуждает к редиректу, то лучше писать так:
var fr1=window.content.document.createElement('iframe'); window.content.document.body.appendChild(fr1); fr1.src = 'http://ya.ru';
Теперь вариант на Аяксе, не очень красивый, но, кажется, работает:
var doc = window.content.document; var body = doc.body; var container = doc.createElement("div"); container.setAttribute("style", "border:1px solid black;margin:10px;width:50%;height:200px;overflow:auto;"); body.insertBefore(container, body.firstChild); var req = new XMLHttpRequest(); req.open("GET", "http://ya.ru", true); req.onload = function() { container.innerHTML = this.responseText; var style = container.getElementsByTagName("style")[0]; while (style) { style.parentNode.removeChild(style); style = container.getElementsByTagName("style")[0]; } container.getElementsByTagName("form")[0].target = "_blank"; container.getElementsByTagName("form")[0].getElementsByTagName("input")[0].focus(); } req.onerror = function() { body.removeChild(container); } req.send(null);
Что нужно изменить во внешнем виде и поведении, подправьте сами — конечно, у меня вышел очень субъективный вариант.
Отредактировано homo_nudus (11-02-2008 15:03:46)
Отсутствует
Выделить кодКод:
var fr1=window.content.document.createElement('iframe'); window.content.document.body.appendChild(fr1); fr1.src = 'http://ya.ru';
Смешно говорить, но у меня когда- то идентичный код (где в качестве тестовой странички был http://ya.ru) перегружал полностью страницу и редиректил на яндекс, притом что с http://google.com было всё нормально
"Software is like SEX - it's better when it's FREE" (C) Linus Torvalds
Отсутствует
Смешно говорить, но у меня когда- то идентичный код (где в качестве тестовой странички был http://ya.ru) перегружал полностью страницу и редиректил на яндекс, притом что с http://google.com было всё нормально
Ну да, это я просто в качестве примера поставил. В коде страницы http://ya.ru можно посмотреть (правда, весь скрипт одной строкой будет):
body onload=" if (self.parent.frames.length!=0) self.parent.location=document.location; else { var t=document.forms[0].text; try { t.type='search' } catch(e){}; t.focus(); } "
Отредактировано homo_nudus (11-02-2008 15:29:13)
Отсутствует
бился с проверкой на загрузку контента/нод, но всё решилось гораздо проще:
window.frames.length = 0; var fr = document.createElement('iframe'); fr.setAttribute('src','ya.ru.htm'); document.body.appendChild(fr);
работает
Отсутствует
бился с проверкой на загрузку контента/нод, но всё решилось гораздо проще:
Выделить кодКод:
window.frames.length = 0; var fr = document.createElement('iframe'); fr.setAttribute('src','ya.ru.htm'); document.body.appendChild(fr);работает :tongue2:
Это подло! :) Бедный скрипт :)
Отредактировано homo_nudus (11-02-2008 23:44:29)
Отсутствует
всем спасибо. это сделал.
Есть ещё вот такой вопрос:
Так я ловлю событие загрузки окна,а как поймать это событие для моего iframe?
Отсутствует
Так я ловлю событие загрузки окна,а как поймать это событие для моего iframe?
window.addEventListener('DOMFrameContentLoaded', function (event) { if(event.originalTarget == fr) alert('loaded'); }, false);
Отсутствует
Страницы: 1