Search code examples
javascriptjqueryhtmlmootools

Cross domain iframe issue


For say i have a Site called example.com on which iframe is embedded of domain iframe.net, now i want to read the content of iframe and pass some parameter to display a textual message. Like Hi with username.

Now the problem is this able not able to make connection between the two , even am not able to get the innerHTML of iframe i used following approach

document.getElementById('myframe').contentWindow.document.body.innerHTML;

It throws error "Permission denied to access property"

Do anyone know how to read and write in cross domain platform


Solution

  • If you don't have control over the framed site, you cannot circumvent the cross-domain policy.

    If you have control over both sites, you can use the postMessage method to transfer data across different domains. A very basic example:

    // framed.htm:
    window.onmessage = function(event) {
        event.source.postMessage(document.body.innerHTML, event.origin);
    };
    
    // Main page:
    window.onmessage = function(event) {
        alert(event.data);
    };
    
    // Trigger:
    // <iframe id="myframe" src="framed.htm"></iframe>
    document.getElementById('myframe').contentWindow.postMessage('','*');