您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Fix player interactions with draggable boxes
当前为
- // ==UserScript==
- // @name DC - MobileFixes
- // @namespace http://tampermonkey.net/
- // @version 0.13
- // @description Fix player interactions with draggable boxes
- // @author Ajira
- // @match https://www.dreadcast.net/Main
- // @match https://www.dreadcast.eu/Main
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- /* TODO ==============================================
- - Should loop on class identified objects like AITL
- =================================================== */
- // Stop event propagation
- function disableEvent(event) {
- event.stopPropagation();
- }
- // Trigger fix only if a dialogbox is popup
- document.getElementById("zone_lightBox").addEventListener('DOMNodeInserted', function() {
- // Check if the dialogbox contains a digicode input
- var digiInput = document.getElementById("lb_textinput_digicode");
- if (digiInput === null) { return; }
- // Search the parent form of the digicode
- var digiForm = digiInput.parentNode.parentNode;
- if (digiForm === null) { return; }
- // Search the dialogbox which contains the form
- var digiBox = digiForm.parentNode.parentNode;
- if (digiBox === null) { return; }
- // Disable draggable event which are in conflict with input click on mobile
- digiBox.removeEventListener("touchstart", disableEvent);
- digiBox.addEventListener("touchstart", disableEvent, true);
- }, false);
- /* === FROM HERE ==========================
- Other experiments
- - Allow scrolling on long AITL offers
- - Allow to enter price in exchanges form
- - Allow to use decks
- ======================================== */
- // Trigger fix only if a databox is popup
- document.getElementById("zone_dataBox").addEventListener('DOMNodeInserted', function() {
- // Check if the databox contains an aitl offer page
- var aitlPages = document.getElementsByClassName("aitl_page");
- if (aitlPages.length == 0) { return; }
- // Search for the AITL box
- var aitlBox = aitlPages[0].parentNode.parentNode.parentNode.parentNode;
- if (aitlBox === null) { return; }
- // Disable draggable event which are in conflict with scroll
- aitlBox.removeEventListener("touchstart", disableEvent);
- aitlBox.addEventListener("touchstart", disableEvent, true);
- }, false);
- // Trigger fix only if a dialogbox is popup
- document.getElementById("zone_dataBox").addEventListener('DOMNodeInserted', function() {
- // Check if the dialogbox contains a exchange input
- var priceInput = document.getElementById("champ_credits");
- if (priceInput === null) { return; }
- // Search the parent form of the exchange
- var priceForm = priceInput.parentNode.parentNode;
- if (priceForm === null) { return; }
- // Search the dialogbox which contains the form
- var priceBox = priceForm.parentNode;
- if (priceBox === null) { return; }
- // Disable draggable event which are in conflict with input click on mobile
- priceBox.removeEventListener("touchstart", disableEvent);
- priceBox.addEventListener("touchstart", disableEvent, true);
- }, false);
- // Trigger fix only if a dialogbox is popup
- document.getElementById("zone_dataBox").addEventListener('DOMNodeInserted', function() {
- // Check if the databox contains a deck
- var deckFroms = document.getElementsByClassName("deck_main");
- if (deckFroms.length == 0) { return; }
- // Search for the deck screen
- var deckScreen = deckFroms[0].parentNode.parentNode.parentNode;
- if (deckScreen === null) { return; }
- // Disable draggable event which are in conflict with scroll
- deckScreen.removeEventListener("touchstart", disableEvent);
- deckScreen.addEventListener("touchstart", disableEvent, true);
- }, false);
- })();