Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá. Construí a seguinte função JS com um código que catei na web e mais umas coisinhas minhas:
function openObject(urlObj,titObj, txtObj) { // Parametros: url, titulo, texto (post)
//var objText = new String();
Ajax.request(urlObj, function(){
if(this.readyState == AjaxStatus.COMPLETE)
{
//alert(this.responseText);
objText = this.responseText;
}
});
var strHtml = '';
strHtml += '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td class="titulo" align="left" valign="middle">Objeto Externo </td><tr><td class="titulo" align="right" valign="middle"><form><input type="button" value="Fechar" onclick="closeObject()"></form></td></tr></table><br />';
strHtml += '<center><span class="subtitulo">'+titObj+'</span></center><br />';
strHtml += '<center>'+objText+'</center>';
strHtml += '<br /><span class="conteudo">';
strHtml += txtObj + '</span>';
var pObject = document.getElementById('wObject');
pObject.style.visibility = 'visible';
WriteLayer('wObject',null,strHtml);
//alert("Aberto obejto: "+urlObj+" Nome: "+titObj+" Texto: "+txtObj);
}
O objetivo é o seguinte: ler um arquivo txt que contem um 'object' do youtube e escrever em uma layer que está oculta, e então, tchan! A layer aparece e puxa o vídeo do youtube. Legal né !?
Fiz um link de teste na mesma página e a layer aparece no segundo clique em diante, carrega o vídeo, tudo certinho. Não sei pq não aparece no primeiro clique.
Fiz um teste de um swf na mesma página e, embora eu verifique pelos 'alert' que a função está sendo chamada, a layer não aparece nunca. Estranho esse comportamento... Alguém tem uma idéia de porque isso pode estar acontecendo?
>
você postou o código faltando a coisa que mais importava, a função WriteLayer.
Não dá para saber oq ue esta acontecendo apenas com o que você disse.
Achei que a WriteLayer não seria importante neste caso já que modifico a propriedade CSS antes de chamá-la. Mas, quem sabe... segue:
function WriteLayer(ID,parentID,sText) {
if (document.layers) {
var oLayer;
if(parentID){
oLayer = eval('document.' + parentID + '.document.' + ID + '.document');
}else{
oLayer = document.layers[ID].document;
}
oLayer.open();
oLayer.write(sText);
oLayer.close();
}
else if (parseInt(navigator.appVersion)>=5&&navigator.appName=="Netscape") {
document.getElementById(ID).innerHTML = sText;
}
else if (document.all) document.all[ID].innerHTML = sText;
}
O código total é um pouco extenso, não quero fazer aquilo de postar tudo e perguntar ahn, onde tá o erro ahn ? ...
Vão me perguntando que eu vou postando...
você postou o código faltando a coisa que mais importava, a função WriteLayer.
Não dá para saber oq ue esta acontecendo apenas com o que você disse.