Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Giullyanny

Erro de javascriptscript

Recommended Posts

Está aparecendo o seguinte erro.:

 

SCRIPT5007: Não é possível obter a propriedade 'style' de referência indefinida ou nula

inicio.php, linha 57 Caractere 1

Só aparece quando eu clico para abrir o menu, como é um sistema só utilizamos ele no IE, e o problema é justamente no IE que ele parou de funcionar., a linha 57 seria está.:

if (foldercontent.style.display=="none"){

Abaixo está o codigo todo. javascript, o menu é uma ul

<style><!--#foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;list-style-image: url("fold.gif")}#foldinglist{list-style-position:inside; list-style-image: url("list.gif")}//--></style><script type="text/javascript"><!--//Smart Folding Menu tree- By Dynamic Drive (rewritten 03/03/02)//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com//This credit MUST stay intact for usewindow.onerror = null;var head="display:''"img1=new Image()img1.src="fold.gif"img2=new Image()img2.src="open.gif"var ns6=(document.getElementById&&!document.all||window.opera)var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1function checkcontained(e){var iscontained=0cur=ns6? e.target : event.srcElementi=0if (cur.id=="foldheader")iscontained=1elsewhile (ns6&&cur.parentNode||(ie4&&cur.parentElement)){if (cur.id=="foldheader"||cur.id=="foldinglist"){iscontained=(cur.id=="foldheader")? 1 : 0break}cur=ns6? cur.parentNode : cur.parentElement}if (iscontained){var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]if (foldercontent.style.display=="none"){foldercontent.style.display=""cur.style.listStyleImage="url(open.gif)"}else{foldercontent.style.display="none"cur.style.listStyleImage="url(fold.gif)"}}}if (ie4||ns6)document.onclick=checkcontained//--></script><script language="JavaScript" type="text/JavaScript"><!--function MM_reloadPage(init) {  //reloads the window if Nav4 resized  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();}MM_reloadPage(true);//--></script>

aqui um pedaço do html ul.:

ul><li id="foldheader"> Inscrições</li>    <ul id="foldinglist" style="list-style-position: outside; display:none" style=&{head};><div><a href="http://www.faculdadeitapuranga.com.br/sistema/vestibular/lista_inscricoes.php?semestre=2013/1">Lista de Inscritos Vestibular 2013/1</a></div><div><a href="http://www.faculdadeitapuranga.com.br/sistema/vestibular/lista_inscricoes.php?semestre=2013/2">Lista de Inscritos Vestibular 2013/2</a></div><div><a href="http://www.faculdadeitapuranga.com.br/sistema/vestibular/lista_inscricoes.php?semestre=2014/1">Lista de Inscritos Vestibular 2014/1</a></div></ul><li id="foldheader"> Financeiro</li>

 

opá amigos, alguém ainda pode me dizer algo sobre?

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca esse cara:

document.onclick=checkcontained
dentro de um callback q aguarde o DOM estar pronto.

window.onload = function(){
    document.onclick = checkcontained;
}

teste e diga se funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que versão do IE você está usando? Esse script com certeza é muito antigo, se está pensando em manter o sistema para IE8+ recomendo que use algum outro ou faça um próprio. Testei no modo de compatibilidade e deu certinho no IE7 mas no IE8 em diante não. O script tem problemas para identificar o navegador. Segue um código em que resolveram esse problema de compatibidade:

 

 

<script type="text/javascript">
//Smart Folding Menu tree- By Dynamic Drive (rewritten 03/03/2002)
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use
//Updated for IE May 3rd, 2013 http://www.dynamicdrive.com/forums/showthread.php?73741&p=294192#post294192

var head = "display:''";

;
(function () {

var img1 = new Image(),
img2 = new Image();
img1.src = "images/fold.gif"
img2.src = "images/open.gif"
var ieversion = /MSIE (\d+)/.exec(navigator.userAgent);
ieversion = ieversion ? ieversion[1] : false;
var ns6 = (document.getElementById && !document.all || window.opera || (ieversion && ieversion > 8))
var ie4 = document.all && navigator.userAgent.indexOf("Opera") == -1

function checkcontained(e) {
e = e || event;
var iscontained = 0,
cur = e.target || event.srcElement;
if (cur.id == "foldheader")
iscontained = 1
else
while (cur.parentNode) {
if (cur.id == "foldheader" || cur.id == "foldinglistlink" || cur.id == "foldinglistdoc") {
iscontained = (cur.id == "foldheader") ? 1 : 0

break
}
cur = cur.parentNode
}

if (iscontained) {
var foldercontent = ns6 && cur.nextSibling ? cur.nextSibling.nextSibling : (cur.nextSibling || cur.all.tags("UL")[0]);
if (foldercontent && foldercontent.style.display == "none") {
foldercontent.style.display = ""
cur.style.listStyleImage = "url(images/open.gif)"
} else if (foldercontent) {
foldercontent.style.display = "none"
cur.style.listStyleImage = "url(images/fold.gif)"
}
}
}

if (document.addEventListener) {
document.addEventListener('click', checkcontained, false);
} else if (document.attachEvent) {
document.attachEvent('onclick', checkcontained);
}
})();
</script>

 

 

Fonte: http://www.dynamicdrive.com/forums/archive/index.php/t-73741.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso mesmo o código antigo, eu peguei este sistema pronto na empresa onde trabalho, pedimos sempre que utilize a compatibilidade até conseguir resolver, obrigado eu vou testar e retorno.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.