| ||||
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 |