我正在尝试在某些网站上运行用户脚本。目的是复制有关在线词典中搜索到的每个单词的信息。我的浏览器是Chrome,我使用的是Tampermonkey扩展程序。我的代码无法正常工作,我也不知道是什么原因,因为控制台上没有出现错误。但是,如果我通过在代码中插入debugger
来停止代码执行,然后在Chrome Developer Tools中单击“恢复代码执行”,即使我不做任何更改,代码也可以正常工作。为什么会这样呢?我该如何解决?这是我的代码,以及Tampermonkey标准用户脚本代码:
(function() {(function(context, fapply, console) {with (context) {(function(module) {"use strict";try {
fapply(module, context, [,,context.CDATA,context.uneval,context.define,context.module,context.exports,context.GM,context.GM_info]);} catch (e) {if (e.message && e.stack) {console.error("ERROR: Execution of script 'StudyFacilitator' failed! " + e.message);console.log(e.stack.replace(/(\\(eval at )?<anonymous>[: ]?)|([\s.]*at Object.tms_[\s\S.]*)/g, ""));} else {console.error(e);}}
})(function (context,fapply,CDATA,uneval,define,module,exports,GM,GM_info) {
// ==UserScript==
// @name StudyFacilitator
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Copy automatically the info about each word searched.
// @author Bruno M. B. Sdoukos
// @match https://www.wordreference.com/enpt/*
// @grant none
// ==/UserScript==
(function(){
'use strict'
// My code starts here
let wordData = {word: '', meaning: '', translation: ''};
wordData.word += document.querySelector('#articleHead > .headerWord').innerText + ' ' + document.querySelector('#pronWR').innerText;
const tooltips = document.querySelectorAll('.tooltip');
for (let i = 0; i < tooltips.length; i++) {
tooltips[i].style.display = 'none';
}
let wordUnits = document.querySelectorAll('tr[id^="enpt:"]');
let loopsNumber = wordUnits.length < 3 ? wordUnits.length : 3
for (let i = 0; i < loopsNumber; i++) {
wordData.meaning += wordUnits[i].querySelector('td:nth-child(2)').innerText + '; ';
let firstTranslation = wordUnits[i].querySelector('.ToWrd');
wordData.translation += firstTranslation.innerText + '; '
let secondTranslation = wordUnits[i].nextElementSibling.querySelector('.ToWrd');
if (secondTranslation !== null) {
wordData.translation += secondTranslation.innerText + '; '
}
}
wordData = wordData.word + ' | ' + wordData.meaning + ' | ' + wordData.translation;
for (let i = 0; i < tooltips.length; i++) {
tooltips[i].style.display = 'initial';
}
let textBox = document.createElement('textarea');
document.querySelector('body').appendChild(textBox);
let text = document.createTextNode(wordData);
textBox.appendChild(text);
textBox.select();
document.execCommand('copy');
document.querySelector('body').removeChild(textBox);
// My code ends here
})()
})}})(this.context, this.fapply, this.console);
//# sourceURL=chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?id=4cf965a9-a02e-49c2-b22d-fecc7d272440
}).apply(window["__u__3218613.1053551002_"])