Jelajahi Sumber

Add Greasemonkey compatibility

Greasemonkey in Firefox doesn't have the GM_xmlhttpRequest function, so
the script breaks when it tries to call the function. This adds a check
before falling back to Greasemonkey's GM.xmlHttpRequest() if available.
Dave Shoreman 3 tahun lalu
induk
melakukan
214b3fd89f
1 mengubah file dengan 13 tambahan dan 1 penghapusan
  1. 13 1
      Extensions/UserScript/Return Youtube Dislike.user.js

+ 13 - 1
Extensions/UserScript/Return Youtube Dislike.user.js

@@ -14,12 +14,24 @@
 // @downloadURL https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return%20Youtube%20Dislike.user.js
 // @updateURL https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return%20Youtube%20Dislike.user.js
 // @grant GM_xmlhttpRequest
+// @grant GM.xmlHttpRequest
 // ==/UserScript==
 function cLog(text, subtext = '') {
   subtext = subtext.trim() === '' ? '' : `(${subtext})`;
   console.log(`[Return Youtube Dislikes] ${text} ${subtext}`);
 }
 
+function doXHR(opts) {
+  if (typeof GM_xmlhttpRequest === 'function') {
+    return GM_xmlhttpRequest(opts);
+  }
+  if (typeof GM.xmlHttpRequest === 'function') {
+    return GM.xmlHttpRequest(opts);
+  }
+
+  console.error('Unable to detect UserScript plugin.');
+}
+
 function getButtons() {
   return document
     .getElementById("menu-container")
@@ -72,7 +84,7 @@ function setDislikes(dislikesCount) {
 function setState() {
   cLog('Fetching votes...');
 
-  GM_xmlhttpRequest({
+  doXHR({
     method: "GET",
     responseType: "json",
     url: