Greasy Fork is available in English.
try to take over the world!
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/22751/144744/WaniKani%20Settings.js
function noSpaces(value){
return value.replace(/ /g,'');
}
function makeSettings(Name, data){
if($('.dropdown.account .dropdown-menu li.nav-header:contains("Scripts")').length === 0){
$('.dropdown.account .dropdown-menu').append('<li id="scriptsMenu" class="nav-header">Scripts</li>');
}
$('#scriptsMenu').after("<li><a id='div" + noSpaces(Name) + "Link' href='#' onclick='$(\"#div" + noSpaces(Name) + "Settings\").dialog(\"open\");return false;'>" + Name + "</a></li>");
$('head').append('<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css" type="text/css" />');
if (typeof jQuery.ui == 'undefined') {
jQuery.getScript("https://code.jquery.com/ui/1.12.0/jquery-ui.js", function(data2, status, jqxhr) {
makeSettings2(Name, data);
});
} else {
makeSettings2(Name, data);
}
}
function makeSettings2(Name, data){
debugger;
var divSettings = "<div id='div" + noSpaces(Name) + "Settings'><table>";
$.each(data,function(item,value){
divSettings = divSettings + '<tr><td><span>' + value.Display + '</span></td>';
switch(value.Type) {
case "textbox":
divSettings = divSettings + '<td><input type="textbox" id="txt' + value.Name + '"></input></td></tr>';
break;
case "checkbox":
divSettings = divSettings + '<td><input type="checkbox" id="chk' + value.Name + '"></input></td></tr>';
break;
case "select":
divSettings = divSettings + '<td><select id="ddl' + value.Name + '">';
$.each(value.Options,function(item2,value2){
divSettings = divSettings + '<option value="' + value2.Value + '">' + value2.Text + '</option>';
});
divSettings = divSettings + '</td></tr>';
break;
default:
break;
}
});
divSettings = divSettings + '</table>';
$('section.progression').after(divSettings);
$.each(data,function(item,value){
switch(value.Type) {
case "textbox":
$('#txt' + value.Name).val(getSetting(value));
break;
case "checkbox":
$('#chk' + value.Name).val();
if(getSetting(value) === "1"){
$('#chk' + value.Name).attr('checked','checked');
}
break;
case "select":
$('#ddl' + value.Name).val(getSetting(value));
break;
default:
return;
}
});
$('#div' + noSpaces(Name) + "Settings").dialog({
autoOpen: false,
height: 300,
width: 400,
modal: true,
buttons: {
"Save": function () {
$.each(data,function(item,value){
switch(value.Type) {
case "textbox":
localStorage.setItem(value.Name,$('#txt' + value.Name).val());
break;
case "checkbox":
if($('#chk' + value.Name).attr('checked') == 'checked'){
localStorage.setItem(value.Name,"1");
} else {
localStorage.setItem(value.Name,"0");
}
break;
case "select":
localStorage.setItem(value.Name,$('#ddl' + value.Name).val());
break;
default:
return;
}
});
$(this).dialog("close");
},
Cancel: function () {
$(this).dialog("close");
}
}
});
}
function getSetting(setting){
return localStorage.getItem(setting.Name) === null ? localStorage.getItem(setting.Default) == null ? "" : localStorage.getItem(setting.Default) : localStorage.getItem(setting.Name);
}