src/js/modules/embed.js
author hamidouk
Tue, 14 Feb 2012 17:14:57 +0100
branchpopcorn-port
changeset 809 1997dae651c6
permissions -rw-r--r--
added some code to handle embedding in an iframe and mediafragment.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
809
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     1
/* embed module - listens and relay hash changes to a parent window. */
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     2
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     3
IriSP.EmbedModule = function(Popcorn, config, Serializer) {
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     4
  IriSP.Module.call(this, Popcorn, config, Serializer);
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     5
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     6
  window.addEventListener('message', IriSP.wrap(this, this.handleMessages), false);
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     7
  this._Popcorn.listen("IriSP.Mediafragment.hashchange", IriSP.wrap(this, this.relayChanges));
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     8
};
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
     9
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    10
IriSP.EmbedModule.prototype = new IriSP.Module();
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    11
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    12
IriSP.EmbedModule.prototype.handleMessages = function(e) {
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    13
  if (e.data.type === "hashchange") {
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    14
    window.location.hash = e.data.value;    
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    15
  }  
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    16
};
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    17
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    18
IriSP.EmbedModule.prototype.relayChanges = function(newHash) {
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    19
  window.parent.postMessage({type: "hashchange", value: newHash}, "*"); 
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    20
  return;
1997dae651c6 added some code to handle embedding in an iframe and mediafragment.
hamidouk
parents:
diff changeset
    21
};