From 6faf33c4f88ea2169128c74d1d95b3dae6dad7ac Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 28 Aug 2017 15:22:40 +0200 Subject: [PATCH] OO-2976: fix the loop around the anchors in iframe for the workaround for FireFox --- src/main/webapp/static/js/openolat/iframe.js | 44 ++++++++++---------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/main/webapp/static/js/openolat/iframe.js b/src/main/webapp/static/js/openolat/iframe.js index fe2833f4ed4..78e7442fcdc 100644 --- a/src/main/webapp/static/js/openolat/iframe.js +++ b/src/main/webapp/static/js/openolat/iframe.js @@ -178,7 +178,7 @@ function b_sendNewUriEventToParent() { } function b_addOnloadEvent(fnc){ -//console.log("b_addOnloadEvent window.name=" + window.name + " b_iframeid=" + b_iframeid + " fnc=" + fnc); + //console.log("b_addOnloadEvent window.name=" + window.name + " b_iframeid=" + b_iframeid + " fnc=" + fnc); try { // Only continue if we can locate the main window var mainwindow = b_getMainWindow(window.parent); @@ -211,29 +211,31 @@ function b_anchorFirefoxWorkaround() { var anchors = document.getElementsByTagName('a'); for (var i=0; i < anchors.length; i++) { var anchor = anchors[i]; - var href = anchor.getAttribute('href'); - if(href && href[0] == "#") { - var name = href.substring(1); - anchor.addEventListener('click', function() { - try { - var nameElement = document.getElementsByName(name); - var element = null; - if(nameElement != null && nameElement.length > 0) { + var href = anchor.getAttribute('href'); + if(href && href[0] == "#") { + anchor.addEventListener('click', function(el) { + try { + var href = el.target.getAttribute('href'); + var name = href.substring(1); + var nameElement = document.getElementsByName(name); + + var element = null; + if(nameElement != null && nameElement.length > 0) { element = nameElement[0]; - } else { - var idElement = document.getElementById(name); - if(idElement != null) { - element = idElement; - } - } - if(element && window && window.parent) { + } else { + var idElement = document.getElementById(name); + if(idElement != null) { + element = idElement; + } + } + if(element && window && window.parent) { var offset = b_anchorFirefoxWorkaroundCumulativeOffset(element); window.parent.scrollTo(offset[0], offset[1]); - } - } catch(e) { - //console.log(e); - } - return true; + } + } catch(e) { + //console.log(e); + } + return true; }); } } -- GitLab