// ==UserScript== // @name Test // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://myanimelist.net/* // @require http://code.jquery.com/jquery-3.4.1.slim.min.js // @grant none // ==/UserScript== var index = 0; (function() { 'use strict'; $(document).ready(function () { console.log(index); index++; setTimeout(() => { console.log(index); }, 2000); }); })();
Итак, вы можете видеть, что этот код должен возвращаться в консоли: 0, затем 1, но результат другой, на самом деле скрипт запускается несколько раз.
Моя единственная подсказка - это то, что пришло с сайта. под вопросом, есть идея?
Исключено: (изображение с низким повторением 1)
Фактически: (изображение с низким повторением 2)
ваш скрипт может загружаться для каждого фрейма на странице.
добавьте // @noframes, чтобы предотвратить это.
// @noframes
// ==UserScript== // @name Test // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://myanimelist.net/* // @require http://code.jquery.com/jquery-3.4.1.slim.min.js // @grant none // @noframes // ==/UserScript==
Вы можете использовать Loda sh для запуска функции один раз
_. Once (// Функция запускается только один раз)