Как синхронно загрузить iframe
Доброе время суток!
Есть iframe и вот такая вот каманда: $('iframe#'+eId).load(function(){box=$(this).contents().find('body').get(0)}) alert(box.innerHTML) Понятно что алерт виведет ошибку, т.к. iframe еще не успел загрузится. Скажите как сделать так что бы алерт выполнялся только после загрузки iframe. Но вставлять его в функцию после box=$(this).contents().find('body').get(0) нельзя, и нельзя использовать таймоут и интервал... Т.е. нужен какой то способ как в аяксе, просто указать асинк=фалсе Заранее спасибо за ответы! |
ну дык и укажите async false, кто вам мешает это сделать?
|
если в jquery, то async false я уже давно там поставил,причем даже в двух местах, но всеравно работает так как я описал выше
|
вот кстати, да бы никто не мучался и не копался в jquery сама ф-ция лоад, где тут нада ставить фальсе не понятно:
load:function(a,b,d){ if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);//всегда попадает сюда else if(!this.length)return this; var e=a.indexOf(" "); if(e>=0){ var f=a.slice(e,a.length); a=a.slice(0,e) } e="GET"; if(b)if(c.isFunction(b)){ d=b; b=null } else if(typeof b==="object"){ b=c.param(b,c.ajaxSettings.traditional); e="POST" } var h=this; c.ajax({ url:a,type:e,dataType:"html",data:b, complete:function(l,k){ if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText); d&&h.each(d,[l.responseText,k,l]) } }); return this } и еще возможно это поможет - src у фрейма не путь на сайт, а вот такая штука: 'data:text/html;charset=utf-8,'+encodeURIComponent(че-то), причем не работает в хроме если кто подскажет как ее заставит работать в хроме, то буду вдвойне благодарен! |
Замените load на ajax
|
Цитата:
Если вы имеете ввиду заменить load на ajax что бы далее заполнить фрейм вручную как вот в примере: var iframe=document.createElement('iframe'),yss=document.getElementsByClassName('yui-skin-sam') yss[0].appendChild(iframe); $(iframe).contents().find('body').html('Hello world!') то я вообщем то даже и не против, только возникает вопрос - успеет ли браузер создать тег body (и вообще создаст ли он его без src), к тому моменту когда нужно будет выполнить $(iframe).contents().find('body').html('Hello world!')? |
ну в общем только что попробовал сделать так как написал в последнем посте
Цитата:
В чем может быть проблема? И даже если дальше найду решение то все равно у меня есть большие сомнения по поводу последнего способа, а именно: 1. как создается тег боди? 2. будет ли такой способ работать в гавно-браузерах типа интернет эксплорера (попробовал только в мозиле)? если кто сталкивался с таким явлением поделитесь опытом |
Часовой пояс GMT +3, время: 08:06. |