Capture mouse right click event inside a iframe using jquery

asp.net, iframe, javascript, jquery

Solution

It is possible if the page inside an `iframe` is on the same domain.

IFrame page at same domain: http://fiddle.jshell.net/rathoreahsan/MNtw8/8/show/

See Demo: http://jsfiddle.net/rathoreahsan/gJtkW/

While if you access the page of an other domain inside an `iframe` like you are doing then it is not recommended.

Edited: See some references given below, hope it will be helpful.

the-iframe-cross-domain-policy-problem

cross-domain-iframe-resizing

Problem

I need to capture right mouse click event inside a iframe in asp.net using any javascript or jquery codes. below is the code i have tried so far. ``` <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Detect IFrame Clicks</title> <script type="text/javascript" language="javascript" src="JScript/jquery-1.7.1.js"></script> <script type="text/javascript" language="javascript" src="JScript/jquery.ui.core.js"></script> <script type="text/javascript" language="javascript" src="JScript/jquery.ui.widget.js"></script> <script type="text/javascript" language="javascript" src="JScript/jquery.ui.mouse.js"></script> <script type="text/javascript"> document.onmousedown = onMousebtClick var isOverIFrame = false; $(document).ready(function() { function processMouseOut() { isOverIFrame = false; top.focus(); } function processMouseOver() { isOverIFrame = true; } function processIFrameClick() { if (isOverIFrame) { log("CLICK << detected. "); onMousebtClick(); } } function log(message) { var console = document.getElementById("console"); var text = console.value; text = text + message + "\n"; console.value = text; } function attachOnloadEvent(func, obj) { if (typeof window.addEventListener != 'undefined') { window.addEventListener('load', func, false); } else if (typeof document.addEventListener != 'undefined') { document.addEventListener('load', func, false); } else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onload', func); } else { if (typeof window.onload == 'function') { var oldonload = onload; window.onload = function() { oldonload(); func(); }; } else { window.onload = func; } } } function init() { var element = document.getElementsByTagName("iframe"); for (var i = 0; i < element.length; i++) { element[i].onmouseover = processMouseOver; element[i].onmouseout = processMouseOut; } if (typeof window.attachEvent != 'undefined') { top.attachEvent('onblur', processIFrameClick); } else if (typeof window.addEventListener != 'undefined') { top.addEventListener('blur', processIFrameClick, false); } } attachOnloadEvent(init); }); function onMousebtClick() { switch (event.button) { case 1: alert("leftclick"); break; case 2: alert("right click"); break; } } /*document.onmousedown = onMousebtClick*/ </script> </head> <body id="mybody"> <iframe src="http://www.microsoft.com" width="800px" height="300px" id="ifrm"> </iframe> <br /> <br /> <form name="form" id="form" action=""> <textarea name="console" id="console" style="width: 300px; height: 300px;" cols="" rows=""></textarea> <button name="clear" id="clear" type="reset"> Clear</button> </form> </body> </html> ``` i can able to detect right mouse click in body tag but i can't able to detect the right mouse click event inside the iframe. Can anyone please help me.

Original source