我试图用 Tampermonkey 运行这个脚本,但我得到错误:eslint:no-undef -$未定义”我做错了什么?
脚本:
(function() {
'use strict';
restore();
$('span.tag').each((n, span) => {
let input = document.querySelector(`input#${span.getAttribute('for')}`);
span.addEventListener('click', () => {
store(`tags`, input.value, input.checked);
});
});
$('#board, #title').change((e) => {
store(e.target.id, e.target.value);
});
function restore(){
let json = localStorage.getItem('create') || "{}";
let data = JSON.parse(json);
Object.keys(data).forEach(key => {
switch(key){
case "tags":
data[key].forEach(val => {
document.querySelector(`input[value="${val}"]`).setAttribute('checked', 'checked');
document.querySelector(`span[for="create_${val}"]`).classList.add('selected');
});
break;
case "board":
document.querySelector(`#board option[value="${data[key]}"]`).setAttribute('selected', 'selected');
default:
document.querySelector(`#${key}`).value = data[key];
break;
}
});
}
function store(key, value, checked) {
let json = localStorage.getItem('create') || "{}";
let data = JSON.parse(json);
if(arguments.length === 3){
data[key] = new Set(data[key]);
if(checked) {
data[key].add(value);
} else {
data[key].delete(value);
}
data[key] = Array.from(data[key]);
} else {
data[key] = value;
}
json = JSON.stringify(data);
localStorage.setItem('create', json);
}
})();
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要在一切之前定义全局变量。只需在顶部包含此行:
/* globals jQuery, $, waitForKeyElements */
Run Code Online (Sandbox Code Playgroud)
并且不要忘记在两==UserScript==行之间要求 jquery :
// @require http://code.jquery.com/jquery-3.x-git.min.js
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |