Пытался сделать небольшой скрипт старой школы ajax (iframe-javascript). Немного mootools используется для навигации DOM
Описание
HTML:
1 iframe называется "буфер"
1 div называется "display"
JAVASCRIPT: (коротко: скопировать содержимое iframe в div на странице)
1) onLoad на iframe запускает обработчик (), счетчик гарантирует, что он запускается только один раз
(это потому, что в противном случае Firefox перейдет в цикл обратной связи. Я думаю, что это произойдет: iframe on load> handler ()> copyBuffer> change src of iframe, и firefox снова примет это за загрузку)
2) вызывается copybuffer (), он устанавливает src iframe, затем копирует содержимое iframe в div, а затем стирает содержимое iframe
КОД:
count=0;
function handler(){
if (count==0){
copyBuffer();
count++;
}
}
function copyBuffer(){
$('buffer').set('src','http://www.somelink.com/');
if (window.frames['buffer'] && $('display') ) {
$('display').innerHTML = window.frames['buffer'].document.body.innerHTML;
window.frames['buffer'].document.body.innerHTML="";
}
}
проблемы
ВОПРОС 1) ничего не происходит, содержимое не загружается в div. Но если я либо:
A) удалите счетчик и дайте сценарию запуститься в цикле обратной связи: содержимое внезапно копируется в div, но, конечно, происходит цикл обратной связи, вы можете видеть, что он продолжает загружаться в строке состояния.
OR
B) вставить предупреждение в функцию copyBuffer. Содержимое копируется без обратной связи.
почему это происходит?
ВОПРОС 2) Если обернуто вокруг кода копирования, который я получил от источника в Интернете. Я не уверен, что это делает? Если я удаляю его, код не работает в: Safari и Chrome.
Заранее большое спасибо!
UPDATE:
Как и в ответах на вопросы, я создал обработчик событий. Они использовали jQuery, я сделал один в mootools :
window.addEvent('domready', function() {
$('buffer').addEvent('load', function(){
$('display').set('html',window.frames['buffer'].document.body.innerHTML)
window.frames['buffer'].document.body.innerHTML="";
}).set('src','somelink');
});
Бонусный вопрос:
3) Я новичок в stackoverflow (что за удивительное место!), Лучше ли мне создавать новые темы для последующих вопросов?