• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xploit

[jQuery]-Javascript no IE

5 mensagens neste tópico

Boas tenho um javascript que funciona no firefox, opera, safari, google chrome, só que no querido IE já não experimentei no IE 7 e IE 8 e não funciona..

Aqui vai o código:

script.js

<script type="text/javascript">
$(document).ready(function(){
$(".Box_Server").each(
function(intIndex){
var board=$(this.childNodes[3]);
var title=$(this.childNodes[1]);
var input=$(this.childNodes[7]);
 var preview=$(this.childNodes[5]);
 var browse_file=$(this.childNodes[5]);
 var delet=$(this.childNodes[5]);	  
 if($(this).attr('type')=="pic"){
    $(title).html("Image");

	if(!input.val()==""){
	  var img;
	   img=input.val().replace("/userfiles/","/userfiles/_thumbs/");
	   board.html('<img src="'+img+'">');
	   board.attr('title',input.val());
    }

 }

 if($(this).attr('type')=="flash"){
   title.html("Flash");	   
	if(!input.val()==""){
	  var flash;
	   flash=input.val();
	   board.html('<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="100" HEIGHT="100" CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=8,0,0,0"><PARAM NAME="MOVIE" VALUE="'+flash+'"><PARAM NAME="WMODE" VALUE="transparent"><PARAM NAME="QUALITY" VALUE="high"><EMBED SRC="'+flash+'" WIDTH="100" HEIGHT="100" WMODE="transparent" QUALITY="high" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT>');
	   board.attr('title',input.val());	
	}else{
	   board.html('<div id="flash_icon_big" ></div>');
	}
 }

 if($(this).attr('type')=="video"){
   title.html("Video");
   
    if(!input.val()==""){
	  var video;
	   video=input.val();
	   board.html(video);
	   board.attr('title',input.val());
	}else{
	   board.html('<div id="galvid_icon_big" ></div>');
	}
 }	 
    });
});
$.fn.image = function(src, f){
return this.each(function(){
var i = new Image();
i.src = src;
i.onload = f;
this.appendChild(i);
});
} 
// FUNCOES PARA AS BOX NEW //


function Box_preview(o){
var type=o.parentNode.parentNode;
var inp=o.parentNode.parentNode.childNodes[7];
var url;
var W;
var H;

if($(type).attr('type')=="pic"){
url=inp.value.replace("/userfiles/_thumbs/","/userfiles/");

$('#Preview-Box').image(url,function(){
W=$(this).width();
H=$(this).height();

$.blockUI({ message: $('#Preview-Box'),css: { width:W+"px",top: ($(window).height() - H) /2+"px", 
                left:($(window).width()-W)/2+"px",height:H+"px",background:'transparent'} });
$(".blockOverlay").attr("title","Clique aqui para fechar").click(function(){$.unblockUI();$('#Preview-Box').empty();});
});



}


if($(type).attr('type')=="flash"){
url=inp.value;
$('#Preview-Box').html('<OBJECT id="FLASHPLUGIN"  CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=8,0,0,0"><PARAM NAME="MOVIE" VALUE="'+url+'"><PARAM NAME="WMODE" VALUE="transparent"><PARAM NAME="QUALITY" VALUE="high"><EMBED SRC="'+url+'"  WMODE="transparent" QUALITY="high" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT>');
W=$('#FLASHPLUGIN').width();
H=$('#FLASHPLUGIN').height();
$.blockUI({ message: $('#Preview-Box'),css: { width:W+"px",top: ($(window).height() - H) /2+"px", 
                left:($(window).width()-W)/2+"px",height:H+"px",background:'transparent'} });
$(".blockOverlay").attr("title","Clique aqui para fechar").click(function(){$.unblockUI();$('#Preview-Box').empty();});
}



if($(type).attr('type')=="video"){
url=inp.value;
$('#Preview-Box').html('é um video...');
W=$('#Preview-Box').width();
H=$('#Preview-Box').height();
$.blockUI({ message: $('#Preview-Box'),css: { width:W+"px",top: ($(window).height() - H) /2+"px", 
                left:($(window).width()-W)/2+"px",height:H+"px" } });
$(".blockOverlay").attr("title","Clique aqui para fechar").click($.unblockUI);
}



}
function Box_del(o){alert("eliminar");}
function Box_browser(o){alert("Procurar no servidor");}
function start(){alert($('#Preview-Box').width());}
</script>

html.html

<div id="Preview-Box" style="display:none;"></div>
        <div class="Box_Server" type="pic" align="center"> 
        <div id="title"></div>
        <div id="board"></div>
        <div id="actions">
          <div  class="iconPreview" title="Pré-visualizar" onClick="Box_preview(this);"></div>
          <div  class="iconPickfile" title="Procurar no Servidor" onClick="Box_browser(this);"></div>
          <div id="del" class="iconDelete" title="Eliminar" onClick="Box_del(this);"></div>
        </div>
         <input type="hidden" name="pic" value="http://localhost/userfiles/ficheiros_do_servidor/9999.jpg">
        </div>
        
        
        <div class="Box_Server" type="flash" align="center"> 
        <div id="title"></div>
        <div id="board"></div>
        <div id="actions">
          <div  class="iconPreview" title="Pré-visualizar" onClick="Box_preview(this);"></div>
          <div  class="iconPickfile" title="Procurar no Servidor" onClick="Box_browser(this);"></div>
          <div id="del" class="iconDelete" title="Eliminar" onClick="Box_del(this);"></div>
        </div>
         <input type="hidden" name="flash" value="http://localhost/userfiles/ficheiros_do_servidor/snail.swf">
        </div>
        
        
        <div class="Box_Server" type="video" align="center"> 
        <div id="title"></div>
        <div id="board"></div>
        <div id="actions">
          <div  class="iconPreview" title="Pré-visualizar" onClick="Box_preview(this);"></div>
          <div  class="iconPickfile" title="Procurar no Servidor" onClick="Box_browser(this);"></div>
          <div id="del" class="iconDelete" title="Eliminar" onClick="Box_del(this);"></div>
        </div>
         <input type="hidden" name="video" value="">
        </div>

O erro que me aparece no IE8 é o seguinte:

Detalhes do erro da página Web

Agente do Utilizador: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

Carimbo de data/hora: Sat, 13 Jun 2009 17:40:06 UTC

Mensagem: '_QuickUploadExtension' não está definido

Linha: 623

Caráct: 1

Código: 0

URL: http://localhost/fckeditor/fckconfig.js

Mensagem: 'this.childNodes.5.childNodes' é nulo ou não é um objecto

Linha: 85

Caráct: 3

Código: 0

URL: http://localhost/noticias.php

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O _QuickUploadExtension não estar definido parece-me claro, por alguma razão essa função não é carregada para o browser (é uma função interna especifica dos outros browsers?)

Quanto ao this.childNodes.5.childNodes, o mais provavel é uma das referências estar errada, provavelmente logo a primeira (o this).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já resolvi os dois problemas, o problema do childNodes e do _QuickExtension.. e ainda assim não continua a funcionar no IE8, o relatorio de erro agora é:

Detalhes do erro da página Web

Agente do Utilizador: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)

Carimbo de data/hora: Sun, 14 Jun 2009 02:35:11 UTC

Mensagem: Ocorreu uma chamada inesperada para acesso às propriedades ou método.

Linha: 12

Caráct: 2305

Código: 0

URL: http://localhost/admin/scripts/jQuery.js

Não percebo este erro.. o jQuery.js é o original, não alterei nada e o path está correcto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê o que está na linha 12, pois parece-me que está a ser invocado um método ou propriedade que não existe.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já resolvi pensei que não fosse possível mas afinal, os childNodes no firefox sao uns, e no IE sao outros era por causa disso. ja esta resolvido : )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora