![triste](http://static.forosdelweb.com/fdwtheme/images/smilies/frown.png)
| ||||
Tengo un problema. ahora cuando detecto que el boton derecho se a pulsado .... como puedo evitar que salga el menu contextual ..... tengo este codigo:
Código:
Solo funciona bajo Mozilla .... pero bueno, el caso es como eliminar el menu contextual jeje <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <div id="area"> <script type="text/javascript"> var area = document.getElementById('area'); var iframe = document.createElement("iframe"); iframe.className = "iframe"; iframe.style.width = "400"; iframe.style.height = "400"; function init() { var doc = iframe.contentWindow.document; doc.designMode = "on"; } setTimeout(init, 100); area.appendChild(iframe); function load() { iframe.contentWindow.document.addEventListener("click", get, false); } function get(e) { if(e.which == 3) { alert("Boton derecho"); } } window.onload = load; </script> </div> </body> </html>
__________________ Usuario registrado de Linux #288725 |
| ||||
Hola epplestun: Explorer tiene sus propios métodos attachEvent para capturar y detachEvent para remover, solo tiene 2 parámetros el evento (con "on" por delante, y la función que llama)... document.body.attachEvent("onclick", saludo); Siendo saludo una función... Aquí tienes un tutorial buenod: http://kusor.net/traducciones/brainj...vents1.es.html Yo tengo el mismo pero en un documento pdf que no sé de donde lo saqué, pero es lo mismo. En el inspector DOM de mi página: http://www.pepemolina.com/DOM/index.html Desarrollé para los dos navegadores, comunicándose entre frames, tal vez tengas problemas en las definiciones de las funciones. Saludos ![]() |
| ||||
Hola otra vez ![]() No sé si es que hay algún problema de seguridad, pero revisé el inspector y no tengo desarrollada esa etiqueta, y te puedo asegurar que me eché mucho tiempo con esta página... seguramente después de no obtener resultados por enésima vez, haya decidido dejarlo por imposible... ![]() Recuerdo que respondí otra pregunta para poner un fondo en un iframe desde la página padre, y he podido generando la página con javascript... ya sabes: with (window.frames[el_frame].document) { clear(); open(); write("<html>...</html>"); close(); } y luego poner window.frames[el_frame].document.body.style... y funcionarme bien, pero con páginas cargadas desde URL's no querer funcionar. ... Si encuentras una solución que funcione no dudes en avisar... ![]() Saludos ![]() |
| ||||
Buenas, esto me funciona perfectamente:
Código:
Eso funciona perfectamente sobre la etiqueta BODY del codumento, pero si intento hacerlo con el body de un iframe no hay manera <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <script> var e = document.body; var evento = "click"; alert(e); if(document.all) { e.attachEvent("on" + evento, openMenu); } else { e.addEventListener(evento, openMenu, false); } function openMenu(event) { alert("Click"); return false; } </script> </body> </html> ![]() Por que puede ser?
Código:
Alguna idea?¿ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <div id="area"> <script type="text/javascript"> document.oncontextmenu = function() { alert("Boton derecho en el documento"); return false; } var area = document.getElementById('area'); var iframe = document.createElement("iframe"); iframe.setAttribute('id','iframe'); iframe.style.width = "400"; iframe.style.height = "400"; function init() { var doc = iframe.contentWindow.document; doc.designMode = "on"; } setTimeout(init, 100); area.appendChild(iframe); with(document.getElementById('iframe').contentWindow.document) { clear(); open(); write("<html><body></body></html>"); close(); } var e = document.getElementById('iframe').contentWindow.document.body; var evento = "click"; //alert(e); if(document.all) { e.attachEvent("on" + evento, openMenu); } else { e.addEventListener(evento, openMenu, false); } function openMenu(event) { alert("Click"); return false; } </script> </div> </body> </html>
__________________ Usuario registrado de Linux #288725 |
| ||||
Hola otra vez: Estube mirando los atributos de explorer y parece que contentWindow no lo admite, en cambio parece que la manera de acceder a los datod de un iframe es mediante frameElement ![]() Pero aún no sé hacer modificaciones. Saludos ![]() |
| ||||
Bueno .... algo e conseguido hacer .... es decir, añadirle el evento pero bueno es una chapucilla:
Código:
El problema es que solo funciona bajo Mozilla <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <div id="menu" style="position: absolute; width: 150px; height: 300px; visibility: hidden; background-color: #f2f2f2" onMouseOut="this.style.visibility='hidden'"></div> <div id="area"> <script type="text/javascript"> document.oncontextmenu = function() { alert("Boton derecho en el documento"); return false; } var area = document.getElementById('area'); var iframe = document.createElement("iframe"); iframe.setAttribute('id','iframe'); iframe.style.width = "400"; iframe.style.height = "400"; function init() { var doc = iframe.contentWindow.document; doc.designMode = "on"; } setTimeout(init, 100); area.appendChild(iframe); with(document.getElementById('iframe').contentWindow.document) { clear(); open(); write("<html><body></body></html>"); close(); } var e = document.getElementById('iframe').contentWindow.document; var evento = "click"; //alert(e); var doc = self.document.getElementById('iframe').contentWindow; _addEvent(doc, "contextmenu", function () { document.getElementById('menu').style.visibility="visible"; alert(); return false;}); function _addEvent(el, ev, func) { if(document.all) { el.attachEvent("on" + ev, func); } else { el.addEventListener(ev, func, true); } } </script> </div> </body> </html>
__________________ Usuario registrado de Linux #288725 |