Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用户在Tampermonkey中输入后消失菜单命令_Javascript_Jquery_Google Chrome_Tampermonkey - Fatal编程技术网

Javascript 用户在Tampermonkey中输入后消失菜单命令

Javascript 用户在Tampermonkey中输入后消失菜单命令,javascript,jquery,google-chrome,tampermonkey,Javascript,Jquery,Google Chrome,Tampermonkey,Tampermonkey是Google Chrome的一个扩展,它试图模仿Greasemonkey的功能。为了清楚起见,我让我的脚本在Chrome中工作,并显示默认的JavaScript更改。然而,我想测试菜单命令,在点击菜单中的命令后输入了6位十六进制颜色代码。我重新加载了页面,命令从菜单中消失了!我的脚本仍然在那里(并且勾选了复选框) 无论我做了什么或更改了什么代码,在设置了用户定义的输入之后,我都无法模拟这个初始功能。这让我相信,有一些我无法删除的持久数据导致我的脚本过早失败。注意:这个脚

Tampermonkey是Google Chrome的一个扩展,它试图模仿Greasemonkey的功能。为了清楚起见,我让我的脚本在Chrome中工作,并显示默认的JavaScript更改。然而,我想测试菜单命令,在点击菜单中的命令后输入了6位十六进制颜色代码。我重新加载了页面,命令从菜单中消失了!我的脚本仍然在那里(并且勾选了复选框)

无论我做了什么或更改了什么代码,在设置了用户定义的输入之后,我都无法模拟这个初始功能。这让我相信,有一些我无法删除的持久数据导致我的脚本过早失败。注意:这个脚本在Firefox中工作完美,没有错误

这显然不是一个Tampermonkey论坛,但这里的人似乎非常了解跨平台兼容性。在下面的所有更改之后,我没有听到Chrome控制台发出任何声音,现在我真的没有主意了。以下是我尝试过的一些事情(没有成功)。列出了所有控制台错误:

  • 将jQuery版本从1.5.1更改为1.3.2
  • 页面加载后从控制台调用localStorage.getItem('prevoColor')(两个值均为null)
  • 将客户端存储从localStorage更改为get/setValue
  • 从控制台调用GM_getValue=ReferenceError:未定义GM_getValue
  • 在Chrome选项中删除veekun.com的本地存储项
  • 刷新、重新安装脚本和重新启动浏览器的次数多得无法计数
  • 使用Firebug Lite(bookmarklet)重复上述所有命令
  • 以下是我使用的代码:

    // ==UserScript==
    // @name           Veekun Comparison Highlighter
    // @namespace      tag://veekun
    // @description    Highlights moves exclusive to pre-evolutions on veekun.com's family comparison pages (user-defined colors available)
    // @include        http://veekun.com/dex/gadgets/*
    // @author         Matthew Ammann
    // @version        1.0.3
    // @date           3/11/11
    // @require        http://sizzlemctwizzle.com/updater.php?id=98824
    // @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
    // ==/UserScript==
    
    /*
    Goal: Change checkmark color & move name to user-specified color on family comparison pages if 
    [DONE] Baby poke has a LEVEL-UP move unlearned by any evolutions
        [DONE] a) Make sure move is not a TM or tutor move
    [DONE] Any other mid-evolution has a move unlearnable by a final evo (Caterpie, Weedle families)
        [DONE] a) Make sure move is not a TM or tutor move
    [DONE] Any pre-evo has a TUTOR move unlearned by any evo (Murkrow in HG/SS)
    [] Implement auto-update after uploading to userscripts.org
    
    Credits: Brock Adams, for helping with Chrome compatibility
             Metalkid, for the jQuery consult
    */
    
    var isLevelupMove = false;
    var isTutorMove = false;
    var isTM = false;
    var TMhead = $('#moves\\:machine');
    var hasSecondEvo = false;
    var hasFinalEvo1 = false;
    var hasFinalEvo2 = false;
    var header = $('.header-row').eq(1);
    var TMmoves = new Array();
    
    //This section deals with the user-defined colors 
    
    GM_registerMenuCommand("Color for pre-evolutionary-only moves", prevoColorPrompt)
    GM_registerMenuCommand("Color for first evolution-only moves", evoColorPrompt)
    
    
    var prevoColor = GM_getValue('prevoColor', '#FF0000');
    var evoColor = GM_getValue('evoColor', '#339900');
    
    function prevoColorPrompt()
    {
        var input = prompt("Please enter a desired 6-digit hex color-code for pre-evolutionary pokemon:") 
        GM_setValue('prevoColor', '#'+input);
    }
    
    function evoColorPrompt()
    {
        var input = prompt("Please enter the desired 6-digit hex color-code for first-evolution pokemon:") 
        GM_setValue('evoColor', '#'+input);
    }
    
    //This loop tests each 'th' element in a sample header row, determining how many Evos are currently present in the chart.
    
    $('.header-row').eq(1).find('th').each(function(index) 
    {
        if($(this).find('a').length != 0)
        {
            switch(index)
            {
                case 2:
                hasSecondEvo = true;
                break;
    
                case 3:
                hasFinalEvo1 = true;
                break;
    
                case 4:
                hasFinalEvo2 = true;
                break;
            }
        }
    });
    
    //All 'tr' siblings are TM moves, since it's the last section on the page
    //This array puts only the names of the available TMs into the TMmoves array
    TMhead.nextAll().each(function(index)
    {
        TMmoves.push($(this).children(":first").find('a').eq(0).html());
    });
    
    $('tr').each(function(index) 
    {
        var moveName = $(this).children(":first").find('a').eq(0).html();   
        moveName = $.trim(moveName);
    
        switch($(this).attr('id'))
        {
            case 'moves:level-up':
                isLevelupMove = true;   
                break;
    
            case 'moves:egg':
                isLevelupMove = false;
                break;  
    
            case 'moves:tutor':
                isTutorMove = true;
    
            case 'moves:machine':
                isTM = true;    
        }
    
        if(isLevelupMove || isTutorMove)
        {
            var babyMoveCell = $(this).find('td').eq(0);
            babyMoveText = $.trim(babyMoveCell.html());
    
            secondEvoCell = babyMoveCell.next();
            secondEvoText = $.trim(secondEvoCell.html());
    
            finalEvo1Cell = secondEvoCell.next();
            finalEvo1Text = $.trim(finalEvo1Cell.html());
    
            finalEvo2Cell = finalEvo1Cell.next();
            finalEvo2Text = $.trim(finalEvo2Cell.html());
    
            //This checks if evolutions have checkmarks
    
            if(babyMoveText.length > 0)
            {
                if(hasSecondEvo && secondEvoText.length == 0 || hasFinalEvo1 && finalEvo1Text.length == 0 || 
                    hasFinalEvo2 && finalEvo2Text.length == 0)
                {
                    //See if the move is a TM before proceeding 
                    var tm = tmCheck(moveName);
    
                    if(!tm)
                    {
    
                        if(secondEvoText.length > 0)
                        {       
                            babyMoveCell.css("color", evoColor);
                            secondEvoCell.css("color", evoColor);
                            babyMoveCell.prev().find('a').eq(0).css("color", evoColor); //highlights move name
                        }
                        else
                        {
                            babyMoveCell.css("color", prevoColor);
                            babyMoveCell.prev().find('a').eq(0).css("color", prevoColor);
                        }
                    }
                }
            }
            else if(secondEvoText.length > 0)
            {
                if(hasFinalEvo1 && finalEvo1Text.length == 0 || hasFinalEvo2 && finalEvo2Text.length == 0)
                {
                    var tm = tmCheck(moveName); 
    
                    if(!tm)
                    {
                        secondEvoCell.css("color", evoColor);
                        babyMoveCell.prev().find('a').eq(0).css("color", evoColor);
                    }
                }
            }
        }
    
    });
    
    function tmCheck(input)
    {
        var isTM = false;
    
        //Iterate through TMmoves array to see if the input matches any entries
        for(var i = 0; i < TMmoves.length; i++)
        {   
            if(input == TMmoves[i])
            {
                isTM = true;
                break;
            }
        }
    
        if(isTM == true)
            return true;
        else
            return false;       
    }
    
    //alert("evoColor: " + localStorage.getItem('evoColor') + ". prevoColor: " + localStorage.getItem('prevoColor'));
    
    /==UserScript==
    //@name Veekun比较荧光灯
    //@名称空间tag://veekun
    //@description Highlights在veekun.com的家族比较页面上独家移动到pre evolutions(提供用户定义的颜色)
    //@包括http://veekun.com/dex/gadgets/*
    //@作者马修·安曼
    //@version 1.0.3
    //@date 3/11/11
    //@需要http://sizzlemctwizzle.com/updater.php?id=98824
    //@需要http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
    //==/UserScript==
    /*
    目标:在以下情况下,在族比较页面上更改复选标记颜色并将名称移动到用户指定的颜色
    [完成]婴儿戳有一个不被任何进化学习的升级动作
    [完成]a)确保移动不是TM或导师移动
    [完成]任何其他中期进化都有一个最终evo无法学习的移动(Caterpie,Weedle家族)
    [完成]a)确保移动不是TM或导师移动
    [完成]任何evo预科课程都有一个未经任何evo学习的导师移动(HG/SS中的Murkrow)
    []上传到userscripts.org后实现自动更新
    赞誉:布罗克·亚当斯,帮助实现Chrome兼容性
    Metalkid,用于jQuery查询
    */
    var isLevelupMove=false;
    var IsutorMove=false;
    var-isTM=false;
    var TMhead=$(“#移动\\:machine”);
    var hasSecondEvo=错误;
    var hasFinalEvo1=假;
    var hasFinalEvo2=假;
    var header=$('.header行').eq(1);
    var TMmoves=新数组();
    //本节介绍用户定义的颜色
    GM_registerNuCommand(“仅用于进化前移动的颜色”,prevoColorPrompt)
    GM_registerNuCommand(“仅移动第一次进化的颜色”,evoColorPrompt)
    var prevoColor=GM_getValue('prevoColor','FF0000');
    var evoColor=GM_getValue('evoColor','339900');
    函数prevoColorPrompt()
    {
    var input=prompt(“请为进化前的口袋妖怪输入所需的6位十六进制颜色代码:”)
    GM#U设置值('prevoColor','#'+输入);
    }
    函数EVOCorPrompt()
    {
    var input=prompt(“请为first evolution pokemon:”输入所需的6位十六进制颜色代码)
    GM#U设置值('evoColor','#'+输入);
    }
    //此循环测试示例标题行中的每个“th”元素,确定图表中当前有多少EVO。
    $('.header行').eq(1).find('th').each(函数(索引)
    {
    if($(this).find('a').length!=0)
    {
    开关(索引)
    {
    案例2:
    hasSecondEvo=真;
    打破
    案例3:
    hasFinalEvo1=真;
    打破
    案例4:
    hasFinalEvo2=真;
    打破
    }
    }
    });
    //所有“tr”同级都是TM移动,因为这是页面的最后一部分
    //此阵列仅将可用TMs的名称放入TMmoves阵列
    TMhead.nextAll().each(函数(索引)
    {
    TMmoves.push($(this.children)(:first”).find('a').eq(0.html());
    });
    $('tr')。每个(函数(索引)
    {
    var moveName=$(this.children(“:first”).find('a').eq(0.html();
    moveName=$.trim(moveName);
    开关($(this.attr('id'))
    {
    案例“移动:升级”:
    isLevelupMove=true;
    打破
    案例“移动:鸡蛋”:
    isLevelupMove=false;
    打破
    案例“移动:导师”:
    IsutorMove=true;
    案例“移动:机器”:
    isTM=真;
    }
    如果(isLevelupMove | | IsAutoMove)
    {
    var babyMoveCell=$(this.find('td').eq(0);
    babyMoveText=$.trim(babyMoveCell.html());
    secondEvoCell=babyMoveCell.next();
    secondEvoText=$.trim(secondEvoCell.html());
    finalEvo1Cell=secondEvoCell.next();
    finalEvo1Text=$.trim(finalEvo1Cell.html());
    finalEvo2Cell=finalEvo1Cell.next();
    finalEvo2Text=$.trim(finalEvo2Cell.html());
    //这将检查进化是否有复选标记
    如果(babyMoveText.length>0)
    {
    如果(hassendevo&&secondEvoText.length==0 | | hasFinalEvo1&&finalEvo1Text.length==0 | |
    hasFinalEvo2&&finalEvo2Text.length==0)
    {
    //继续之前,查看移动是否为TM
    var tm=tmCheck(moveName);
    如果(!tm)
    {