v1.53.5 postMessage to set hash for embed
authorcavaliet
Wed, 30 Apr 2014 12:18:50 +0200
changeset 1306 18d57d4261b1
parent 1305 c984acc5ede1
child 1307 fb0a2a17658f
v1.53.5 postMessage to set hash for embed
src/ldt/ldt/__init__.py
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_iframe.html
src/ldt/ldt/static/ldt/metadataplayer/MultiSegments.js
--- a/src/ldt/ldt/__init__.py	Fri Apr 25 12:36:30 2014 +0200
+++ b/src/ldt/ldt/__init__.py	Wed Apr 30 12:18:50 2014 +0200
@@ -1,6 +1,6 @@
 __all__ = ["VERSION", "get_version", "__version__"]
 
-VERSION = (1, 53, 4, "final", 0)
+VERSION = (1, 53, 5, "final", 0)
 
 
 def get_version():
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_iframe.html	Fri Apr 25 12:36:30 2014 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_iframe.html	Wed Apr 30 12:18:50 2014 +0200
@@ -19,6 +19,16 @@
 				tag_string= '{{ tag_titles }}';
 				tag_titles_array=tag_string.split(",");
 			{% endif %}
+
+            // Public function to set location's hash. Usefull because browser's security does not allow to get/set document.getElementById("my-iframe").contentWindow.location.hash
+            var setHash = function(e) {
+                // e.data is the string sent by the origin with postMessage.
+                if(e.data.split('#')[0] == 'setHash') {
+                    window.location.setHash(e.data.split('#')[1]);
+                }
+            }
+            // we have to listen for 'message'
+            window.addEventListener('message', setHash, false);
 		</script>
 	</head>
 	<body id="init_embed_popup">
@@ -200,6 +210,7 @@
 			};
 			
 			_myPlayer = new IriSP.Metadataplayer(_config);
+			
 			</script>
 			</div>
 		</div>
--- a/src/ldt/ldt/static/ldt/metadataplayer/MultiSegments.js	Fri Apr 25 12:36:30 2014 +0200
+++ b/src/ldt/ldt/static/ldt/metadataplayer/MultiSegments.js	Wed Apr 30 12:18:50 2014 +0200
@@ -98,12 +98,12 @@
     });
     
     // open line on segment click
-    $j(document).on("click",".Ldt-Segments-Segment",function(e){
+    IriSP.jQuery(document).on("click",".Ldt-Segments-Segment",function(e){
     	if (!_this.show_all && currentLine && !currentLine.hasSegmentsNow()) {
             currentLine = undefined;
         }
         IriSP._(lines).each(function(line) {
-        	if($j(e.target).parent().parent()[0]==line.segmentWidget[0]){
+        	if(IriSP.jQuery(e.target).parent().parent()[0]==line.segmentWidget[0]){
         		currentLine = line;
         		line.show();
         	} else {