Javascript 用户在Tampermonkey中输入后消失菜单命令
Tampermonkey是Google Chrome的一个扩展,它试图模仿Greasemonkey的功能。为了清楚起见,我让我的脚本在Chrome中工作,并显示默认的JavaScript更改。然而,我想测试菜单命令,在点击菜单中的命令后输入了6位十六进制颜色代码。我重新加载了页面,命令从菜单中消失了!我的脚本仍然在那里(并且勾选了复选框) 无论我做了什么或更改了什么代码,在设置了用户定义的输入之后,我都无法模拟这个初始功能。这让我相信,有一些我无法删除的持久数据导致我的脚本过早失败。注意:这个脚本在Firefox中工作完美,没有错误 这显然不是一个Tampermonkey论坛,但这里的人似乎非常了解跨平台兼容性。在下面的所有更改之后,我没有听到Chrome控制台发出任何声音,现在我真的没有主意了。以下是我尝试过的一些事情(没有成功)。列出了所有控制台错误:Javascript 用户在Tampermonkey中输入后消失菜单命令,javascript,jquery,google-chrome,tampermonkey,Javascript,Jquery,Google Chrome,Tampermonkey,Tampermonkey是Google Chrome的一个扩展,它试图模仿Greasemonkey的功能。为了清楚起见,我让我的脚本在Chrome中工作,并显示默认的JavaScript更改。然而,我想测试菜单命令,在点击菜单中的命令后输入了6位十六进制颜色代码。我重新加载了页面,命令从菜单中消失了!我的脚本仍然在那里(并且勾选了复选框) 无论我做了什么或更改了什么代码,在设置了用户定义的输入之后,我都无法模拟这个初始功能。这让我相信,有一些我无法删除的持久数据导致我的脚本过早失败。注意:这个脚
// ==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)
{