From a3676597d2c45bfb16b496558f51cb4828b1a0e4 Mon Sep 17 00:00:00 2001 From: James Campos Date: Sat, 30 Apr 2011 06:25:08 -0700 Subject: [PATCH] close #51 --- 4chan_x.js | 63 ++++++++++++++++++++++++++++++++++++--------------- script.coffee | 44 ++++++++++++++++++++++++----------- 2 files changed, 76 insertions(+), 31 deletions(-) diff --git a/4chan_x.js b/4chan_x.js index 7dc8b8996..fa8c3007e 100644 --- a/4chan_x.js +++ b/4chan_x.js @@ -262,23 +262,6 @@ return $.setValue(this.name, this.value); } }, - deleteValue: function(name) { - name = NAMESPACE + name; - return delete localStorage[name]; - }, - getValue: function(name, defaultValue) { - var value; - name = NAMESPACE + name; - if (value = localStorage[name]) { - return JSON.parse(value); - } else { - return defaultValue; - } - }, - setValue: function(name, value) { - name = NAMESPACE + name; - return localStorage[name] = JSON.stringify(value); - }, addStyle: function(css) { var style; style = document.createElement('style'); @@ -398,6 +381,50 @@ } } }); + if (typeof GM_deleteValue !== "undefined" && GM_deleteValue !== null) { + $.extend($, { + deleteValue: function(name) { + return GM_deleteValue(name); + }, + getValue: function(name, defaultValue) { + var value; + if (value = GM_getValue(name)) { + return JSON.parse(value); + } else { + return defaultValue; + } + }, + openInTab: function(url) { + return GM_openInTab(url); + }, + setValue: function(name, value) { + return GM_setValue(name, JSON.stringify(value)); + } + }); + } else { + $.extend($, { + deleteValue: function(name) { + name = NAMESPACE + name; + return delete localStorage[name]; + }, + getValue: function(name, defaultValue) { + var value; + name = NAMESPACE + name; + if (value = localStorage[name]) { + return JSON.parse(value); + } else { + return defaultValue; + } + }, + openInTab: function(url) { + return window.open(url, "_blank"); + }, + setValue: function(name, value) { + name = NAMESPACE + name; + return localStorage[name] = JSON.stringify(value); + } + }); + } $$ = function(selector, root) { var node, result, _i, _len, _results; if (root == null) { @@ -722,7 +749,7 @@ id = thread.firstChild.id; url = "http://boards.4chan.org/" + g.BOARD + "/res/" + id; if (tab) { - return window.open(url, "_blank"); + return $.openInTab(url); } else { return location.href = url; } diff --git a/script.coffee b/script.coffee index cd6c41b11..269f7aa56 100644 --- a/script.coffee +++ b/script.coffee @@ -162,18 +162,6 @@ $.extend $, $.setValue @name, @checked value: -> $.setValue @name, @value - deleteValue: (name) -> - name = NAMESPACE + name - delete localStorage[name] - getValue: (name, defaultValue) -> - name = NAMESPACE + name - if value = localStorage[name] - JSON.parse value - else - defaultValue - setValue: (name, value) -> - name = NAMESPACE + name - localStorage[name] = JSON.stringify value addStyle: (css) -> style = document.createElement 'style' style.type = 'text/css' @@ -267,6 +255,36 @@ $.extend $, #after first sunday return false +if GM_deleteValue? + $.extend $, + deleteValue: (name) -> + GM_deleteValue name + getValue: (name, defaultValue) -> + if value = GM_getValue name + JSON.parse value + else + defaultValue + openInTab: (url) -> + GM_openInTab url + setValue: (name, value) -> + GM_setValue name, JSON.stringify value +else + $.extend $, + deleteValue: (name) -> + name = NAMESPACE + name + delete localStorage[name] + getValue: (name, defaultValue) -> + name = NAMESPACE + name + if value = localStorage[name] + JSON.parse value + else + defaultValue + openInTab: (url) -> + window.open url, "_blank" + setValue: (name, value) -> + name = NAMESPACE + name + localStorage[name] = JSON.stringify value + $$ = (selector, root=d.body) -> result = root.querySelectorAll selector node for node in result @@ -527,7 +545,7 @@ keybinds = id = thread.firstChild.id url = "http://boards.4chan.org/#{g.BOARD}/res/#{id}" if tab - window.open url, "_blank" + $.openInTab url else location.href = url