Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

Because of the cross domain security restrictions in most Javascript implementations, it’s normally impossible for one HTML document to communicate with another frame, popup, or iframe unless the two pages are served from the same domain. James Burke came up with a clever solution to this problem, allowing bidirectional communication between a parent window and it’s iframe or popup.

The trick is to use the fragment identifier, that portion of the url after the # which is normally used to identify a named anchor, to pass messages between the documents. Since the javascript in both documents can retreive the other window’s location, and since changing the location to a new anchor doesn’t involve a page refresh, the two windows can talk to eachother. It’s as simple as setting an interval on each end to poll the other window’s location for changes.

Cross Frame Communication with Fragment Identifiers – Link and an Example


Related

Comments

  1. works says:

    this works! I would kiss you if you weren’t infected with parasites.

  2. Gary says:

    Works as long as you don’t care about the back button.

    The back button no longer works as expected.. each time you change the hash “#” value to send messages, an entry is made to the browsers history. Hitting the back button sends the page back thru these messages, confusing the user.
    Similar issue with the forwards button.

  3. Gary says:

    Works as long as you don’t care about the back button.

    The back button no longer works as expected.. each time you change the hash “#” value to send messages, an entry is made to the browsers history. Hitting the back button sends the page back thru these messages, confusing the user.
    Similar issue with the forwards button.