大家好,感谢您的阅读,
我的扩展程序
我正在为学校项目制作镀铬扩展程序。它是一个扩展,可以帮助您从互联网上复制内容并将其放在一个文件中。
它是如何工作的:您选择文本,按一个按钮,然后将所选文本添加到您的选择中。您可以在页面上执行此操作几次。选择了所需的所有文本后,按Enter键即可下载。
问题
所以目前,扩展程序正常,但仅表示您当时正在访问的页面。当您打开新页面或浏览到其他网站时,扩展程序似乎重新加载,因为之前的选择已经消失。假设你有2页。在第1页上,您选择了一些文本并将其添加到您的选择中,现在您转到第2页并选择更多文本并将其添加到您的选择中,然后按Enter键进行下载。下载时,您获得的唯一文本是第2页的文本。
我该怎么办?
守则
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
function download(data, filename, type) {
var file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob) // IE10+
window.navigator.msSaveOrOpenBlob(file, filename);
else { // Others
var a = document.createElement("a"),
url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
var test = readTextFile("strings.txt");
var inhoud = "";
var raised = false;
var lastUrl = "";
// Hallo meneer Hemert (Als u dit leest);
document.addEventListener('keypress', (e) => {
if (e.keyCode == 13) {
raised = true;
}
});
document.addEventListener('keyup', (e) => {
if(raised ==true) {
inhoud += "\n";
inhoud += "\n";
inhoud += "Bron: ";
inhoud += document.URL;
lastUrl = document.URL;
download(test, "tekst.rtf");
raised = false;
}
});
document.addEventListener('keydown', (e) => {
if (e.keyCode == 18) {
if (window.getSelection() == "") {
console.log("prank gaat fout");
}
else {
inhoud += getSelectionText();
if (document.URL == lastUrl) {
console.log("hallo");
} else {
}
}
}
});
// Deze functie leest de tekst uit een tekstbestand.
// Dit is handig zodat de plugin kan werken op elke pagina
function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
alert(allText);
}
}
}
rawFile.send(null);
}
请不要畏缩,我十七岁,学习......