# HG changeset patch # User cavaliet # Date 1398853130 -7200 # Node ID 18d57d4261b16225ebac8299cfac43a8ba42b220 # Parent c984acc5ede16cf2a0fb0cee2da981df7fe13e76 v1.53.5 postMessage to set hash for embed diff -r c984acc5ede1 -r 18d57d4261b1 src/ldt/ldt/__init__.py --- 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(): diff -r c984acc5ede1 -r 18d57d4261b1 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/embed_iframe.html --- 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); @@ -200,6 +210,7 @@ }; _myPlayer = new IriSP.Metadataplayer(_config); + diff -r c984acc5ede1 -r 18d57d4261b1 src/ldt/ldt/static/ldt/metadataplayer/MultiSegments.js --- 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 {