【发布时间】:2015-10-16 20:12:34
【问题描述】:
我正在尝试创建一个小书签,它允许教师突出显示网页上的文本并将该选择下载为纯文本 (.txt) 文件。我设置了a demo page 以显示我的工作内容以及我遇到的问题。
在演示页面上,我可以突出显示文本并使用“下载选择”按钮直接下载。但是,如果您错误地突出显示,则必须返回并再次执行。 “制作页面”按钮抓取突出显示的文本并创建一个带有文本的弹出窗口以进行校对。
script.js
function makePage(text) {
var text = "";
if(typeof window.getSelection != "undefined") {
text = window.getSelection().toString();
var newPage = window.open("", null, "height=200,width=300,status=yes,menubar=no");
newPage.document.write("<body><a id='download' download='text.txt'></a><p id='copy'>" + text + "</p><button id='download' onclick='getPlainText()'>Download</button><scipt type='text/javascript' src='script.js' defer></script></body></html>");
console.log(text)
}
}
function getPlainText(copy) {
var text = "";
if(typeof window.getSelection != "undefined") {
text = window.getElementById('copy').innerContent;
var download = document.getElementById('download');
download.href = 'data:text/plain;charset:utf-8,' + encodeURIComponent(text);
var event = new MouseEvent('click');
download.dispatchEvent(event);
}
return text;
}
当我单击弹出窗口上的“下载”按钮时,控制台中出现 TypeError:
Uncaught TypeError: window.getElementById is not a function
我已经在文档中移动了脚本,但是无论它在哪里,错误都会返回,我不知道为什么。关于如何让它发挥作用的任何想法?
【问题讨论】:
标签: javascript dom