Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Подгрузка контента во фрейме не при старте


Автор: Innuendo 18.1.2008, 20:04
На странице есть пустой невидимый iframe. Мне нужно при каком-то действии дать ему ссылку (с этого же сервера конечно), чтоб эта ссылка загрузилась во фрейме и далее оттуда надо изъять некий контент (пару значений элементов по ID находимых)

Как осуществить эту загрузку iframe? хотелось бы чтоб изначально в  html просто был тег <iframe src='' onload='dothis()'></iframe>
а интереактивно ему далось src  и загрузилось.


И ещё такой вопрос. Вообще понял что через fram'ы подгружать не очень-то удобно, так как грузится там внешне вся страница, а мне надо только одно значение получить. Знаю про ajax, но возможен ли он если нет доступа к php файлу, к котому обращаюсь?

Автор: vasac 18.1.2008, 21:12
Цитата(Innuendo @  18.1.2008,  20:04 Найти цитируемый пост)
хотелось бы чтоб изначально в  html просто был тег <iframe src='' onload='dothis()'></iframe>
а интереактивно ему далось src  и загрузилось.

И? В чем проблемы?


Цитата(Innuendo @  18.1.2008,  20:04 Найти цитируемый пост)
Знаю про ajax, но возможен ли он если нет доступа к php файлу, к котому обращаюсь?

Не понял. Если к php-файлу нет доступа, то тут и iframe ничем не поможет.

Автор: Innuendo 19.1.2008, 01:38
vasac
Цитата(vasac @  18.1.2008,  21:12 Найти цитируемый пост)
И? В чем проблемы?


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

el.innerHTML = '<iframe src="'+URL+'" style="display:none" onload="loaded()" ></iframe>'

а хотелось бы чтоб в уже имеющийся в html'e Iframe загрузился документ

Цитата(vasac @  18.1.2008,  21:12 Найти цитируемый пост)
Не понял. Если к php-файлу нет доступа, то тут и iframe ничем не поможет. 

ну доступа нет - т.е. я не могу редактировать сам php файл, я не могу подкорректировать там ответы для ajax'a. А просто открываю этот файл во фрейме - он просто грузит полностью содержимое страницы и  я через getElementById("needed_element").innerHTML получаю нужное мне значение

Автор: Astraller 19.1.2008, 11:22
Цитата(Innuendo @  19.1.2008,  01:38 Найти цитируемый пост)

а хотелось бы чтоб в уже имеющийся в html'e Iframe загрузился документ

Изначально вставляете 
Код

<frame id='myFrame' class='invisible'></frame>

Далее в нужный момент:
Код

document.getElementById('myFrame').src="http://www.bla-bla-bla.bla/bla.html";

И - вуаля, оно прогрузилось smile
Цитата

А просто открываю этот файл во фрейме - он просто грузит полностью содержимое страницы и  я через getElementById("needed_element").innerHTML получаю нужное мне значение

А Ajax как раз и возвращает в виде строки все что передал скрипт ;)

Автор: vasac 19.1.2008, 12:56
iframe, Astraller.
Изменение SRC одного ифрейма, возможно, не будет корректно работать во всех браузерах.
Но, почему требуется именно один? Что плохого в том, чтобы создавать на запрос отдельный фрейм и убивать его, когда получен ответ?
А у xmlHttpRequest есть responseText

Автор: Innuendo 19.1.2008, 13:50
vasac
Цитата(vasac @  19.1.2008,  12:56 Найти цитируемый пост)
А у xmlHttpRequest есть responseText 

так то, что передаётся в responceText мне нужно задать в том php файле...
А тут мне нужно содержимое одного лишь div'a... Или в responceText идёт всё что выводится через echo?

Цитата(vasac @  19.1.2008,  12:56 Найти цитируемый пост)
Но, почему требуется именно один? Что плохого в том, чтобы создавать на запрос отдельный фрейм и убивать его, когда получен ответ?

т.е. через DOM? создавать новый элемент, задавать атрибуты, грузить, а потом удалять?

Автор: Astraller 19.1.2008, 15:36
Цитата(Innuendo @  19.1.2008,  13:50 Найти цитируемый пост)
А тут мне нужно содержимое одного лишь div'a... Или в responceText идёт всё что выводится через echo?

Именно так. smile 
Цитата(Innuendo @  19.1.2008,  13:50 Найти цитируемый пост)
т.е. через DOM? создавать новый элемент, задавать атрибуты, грузить, а потом удалять? 

Именно так. smile 
Цитата(vasac @  19.1.2008,  12:56 Найти цитируемый пост)
Изменение SRC одного ифрейма, возможно, не будет корректно работать во всех браузерах.

Когда я использовал точно работало в FF, IE, Opera.  smile 

Автор: Innuendo 20.1.2008, 00:16
Astraller, я пробовал через window.frame_name.src = '' и не грузился

Автор: Astraller 20.1.2008, 10:32
Цитата(Innuendo @  20.1.2008,  00:16 Найти цитируемый пост)
Astraller, я пробовал через window.frame_name.src = '' и не грузился 

А попробовать присвоить фрейму ID и обратиться как я сказал?

Автор: Innuendo 20.1.2008, 14:27
Astraller, я попробую. просто обращение 100% работало (к фрейму он точно обращался),
может проблема что я юзал <iframe> а у тебя <frame>
попробую - позже отпишусь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)