Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
function getSrc(e) { /* event */ return (e.target) ? e.target : (window.event && event.srcElement) ? event.srcElement : false; }function editar(e) { confirm('Deseja editar este contato?') ? location.href = getSrc(e).href : /*retornar nada, nem ir pra o link*/ }function apagar(e) { confirm('Deseja apagar este contato?') ? location.href = getSrc(e).href : alert('Ok, nenhuma ação foi feita!'); /*retornar nada, nem ir pra o link*/ }<a href="contatos.asp?m=2&id=258" title="Editar contato" onclick="editar()">Editar</a><a href="contatos.asp?m=3&id=258" title="Apagar contato" onclick="apagar()">Apagar</a>Vejam só...
Tenho estes dois links acima na minha página.
Praticando o JS-UNOBTRSUIVE (NÃO OBSTRUSIVO), eu adicionei os atributos onclick neles.
Dae eles resultaram naquilo ali, até aí tudo beleza né?
Então, eles funcionam direitinho, chamam as funções direitinho.
Só que eu preciso de uma coisa, caso a pessoa NÃO confirme a ação, não deve acontecer nada, ou seja, o link não pode obedecer o href.
Mas eu não sei como devolver isso como falso de maneira CROSS BROWSER.
No código aí de cima, está comentado aonde preciso inserir esta parte.
Antes que perguntem, eu to adicionando o onclick desta maneira.
var as = document.getElementsByTagName('a') var a for(var x=0; x<as.length; x++) { a = as[x] if (a.href.indexOf('m=2') > 0) { addEvent(a,"click",editar,false) } else if (a.href.indexOf('m=3') > 0) { addEvent(a,"click",apagar,false) } }// A função addEvent é essa:function addEvent(elm, evType, fn, useCapture) { // [http://www.scottandrew.com/weblog/jsjunk#events](http://www.scottandrew.com/weblog/jsjunk#events) if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; } else if (elm.attachEvent) { var r = elm.attachEvent("on"+evType, fn); return r; } else { alert("Handler could not be removed"); return false }}Acho que teria de usar algo parecido com isso, mas não sei com adaptar..
if (window.event) { event.returnValue = false } else { try { e.preventDefault() } catch(e) { /.../ } }
ATENÇÃO:Pra quem quiser ver a página rodando, só como teste pra entender como o script funciona, dê um look neste link:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.imasters.com.br/forum/style_images/1/folder_post_icons/icon11.gif&key=1c88f0953f48ea708acbfcf895b974cb568f4d53ef1e454fa38d92a9af033c27" alt="Imagem Postada" />http://www.guto.retrieve.com.br/portalbrasil/contatos.htm
Carregando comentários...