html - 多个 JavaScript 函数未运行
问题描述
我正在尝试制作一个允许您使用文本编辑器的应用程序。您可以在文本块中输入任何内容。您可以对所述文本块做两件事:
a)在新的 about:blank 选项卡中将文本作为 html 页面运行,或者
b)将文本另存为 .html
出于某种原因,但是,当我尝试实现保存功能时,这两个函数都不会加载。如果我进入 JS 控制台,单击保存按钮时会显示此错误:
"Uncaught ReferenceError: saveAsFile is not defined (temp.html,1)"
当我将它们分成两个<script>
块时,我可以让保存功能工作。但是,当我这样做时,“在新选项卡中运行”功能不再起作用。这完全令人困惑。
之前用过多个功能,不知道为什么突然不行了。有人可以帮忙吗?这是我的代码:
<script>
function run() {
var codeTab = window.open("" _blank);
var codeRun = document.getElementById("code").value;
codeTab.document.write(codeRun);
}
</script>
<script>
/*i stole-i mean used-this code from someone else*/
function saveAsFile() {
var textToSave = document.getElementById("code").value;
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/text,' + encodeURI(textToSave);
hiddenElement.target = '_blank';
hiddenElement.download = 'save.html';
hiddenElement.click();
}
</script>
解决方案
在第 3 行,您有window.open("" _blank);
. 应该是window.open("_blank");
。
我也看不到任何地方saveAs()
被调用(或定义)。它可能被调用codeRun
吗?请参阅下面对我有用的代码。
<textarea id="code">
</textarea>
<button onclick="run();">Run</button>
<button onclick="saveAsFile();">Save</button>
<script>
function run() {
var codeTab = window.open("_blank");
var codeRun = document.getElementById("code").value;
codeTab.document.write(codeRun);
}
/*i stole-i mean used-this code from someone else*/
function saveAsFile() {
var textToSave = document.getElementById("code").value;
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/text,' + encodeURI(textToSave);
hiddenElement.target = '_blank';
hiddenElement.download = 'save.html';
hiddenElement.click();
}
</script>
推荐阅读
- laravel - 将 Laravel Passport 访问令牌存储在 cookie 中
- javascript - Vanilla Javascript:如何多次使用克隆的 DOM 节点?
- php - 将MVC应用于php的有效方式
- hyperledger-fabric - Hyperledger Composer 身份问题:错误 - JSON 中位于位置 0 的意外令牌 P
- xml - Android Studio Component Tree has moved to a different bar
- r - 通过变量均衡值,考虑到 R 中的类别和组
- python - python3为什么'字符串'不是str?
- reactjs - 如何将参数传递给reactjs中的函数?
- docker - 使用 sysVinit 启动 Docker 守护进程
- php - Wordpress/OptimizePress 在我的新登录表单中重定向 wp-login.php