From 65adaf39142ca9c2cfbe239bfafff690833a42cc Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Sat, 10 Dec 2011 01:50:27 +0100 Subject: [PATCH] Check if the Direct Download Link has been added already Signed-off-by: Antonio Ospite --- direct_download_links.user.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/direct_download_links.user.js b/direct_download_links.user.js index d430887..9f42a3f 100644 --- a/direct_download_links.user.js +++ b/direct_download_links.user.js @@ -185,16 +185,24 @@ function _add_link(e) { return; } - var download_link = document.createElement('a'); - download_link.textContent = 'Direct Link'; - download_link.setAttribute('href', URL); - var style = 'background-color: white; color: blue;'; - style += ' border: 2px solid red;' - style += ' float: right; font-size: large;'; - style += ' padding: .5em; margin: 1em;' - download_link.setAttribute('style', style); - - destination.insertBefore(download_link, destination.firstChild); + // Check if we added the link already, if so just update the href attribute. + // This is useful when _get_URL() is called on async events. + var download_link = document.getElementById('GM_direct_downaload_link'); + if (download_link) { + download_link.setAttribute('href', URL); + } else { + download_link = document.createElement('a'); + download_link.textContent = 'Direct Link'; + download_link.setAttribute('id', 'GM_direct_downaload_link'); + download_link.setAttribute('href', URL); + var style = 'background-color: white; color: blue;'; + style += ' border: 2px solid red;' + style += ' float: right; font-size: large;'; + style += ' padding: .5em; margin: 1em;' + download_link.setAttribute('style', style); + + destination.insertBefore(download_link, destination.firstChild); + } } function DDL_log(message) { -- 2.1.4