From 74e980a8eb0cd65e227a227875f02925edf48b21 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Sun, 25 Sep 2016 13:31:55 +0100 Subject: [PATCH] Reuse SVG response rather than getting the markup back our of an element Edge doesn't support .outerHTML on SVG so the previous method failed on Edge. This way does make more sense anyway --- public/assets/enhancements.js | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/public/assets/enhancements.js b/public/assets/enhancements.js index b08d47d..5d732dd 100644 --- a/public/assets/enhancements.js +++ b/public/assets/enhancements.js @@ -142,10 +142,20 @@ var xhr = new XMLHttpRequest(); xhr.open('GET', favouriteNodes.heartPath); xhr.addEventListener('load', function() { + cb(xhr.responseText); + }); + xhr.send(); + }, + + // Initiate node favouriting + init: function() { + + // Start loading heart SVG before DOM + favouriteNodes.loadSVG(function(svg) { // Create heart SVG elem var div = create('div'); - div.innerHTML = xhr.responseText; + div.innerHTML = svg; var heartEl = div.firstChild; // Show heart as active if we've already hearted this node @@ -168,18 +178,6 @@ } }); - // Run callback - cb(heartEl); - }); - xhr.send(); - }, - - // Initiate node favouriting - init: function() { - - // Start loading heart SVG before DOM - favouriteNodes.loadSVG(function(heartEl) { - // Then inject into DOM when it's ready DOMReady(function() { var headerHeight = find('.title').offsetHeight; @@ -195,7 +193,7 @@ var menuButton = create('div'); menuButton.classList.add('menu-button'); menuButton.style.height = headerHeight + 'px'; - menuButton.innerHTML = heartEl.outerHTML; + menuButton.innerHTML = svg; menuButton.addEventListener('click', function() { favouriteNodes.updateHeartedNodesList(); find('.menu').classList.toggle('active');