首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在“新建”窗口中预览在Textarea中键入的整个文档

在“新建”窗口中预览在Textarea中键入的整个文档
EN

Stack Overflow用户
提问于 2014-11-04 19:31:39
回答 2查看 537关注 0票数 2

我正在制作一个简单的代码编辑器,用于在线和离线编写HTML/CSS/JS文件。到目前为止,一切都进行得很顺利,但我正在努力弄清楚如何准确预览一个完整的HTML文档,该文档被输入到编辑器、doctype和所有文件中。到目前为止,对于编辑器,您可以使用“”打开您在新窗口中键入的文档。

但是,让它按照我希望的方式工作的唯一方法是让我使用一个base64编码的HTML,它允许我将整个文档输出到一个窗口、doctype等等。

如果我说,previewWinRef.document.write(editor.value),那是行不通的。在尝试之后,它所做的就是将其附加到当前文档中。

如何清除预览窗口的全部内容,并在不使用base64编码的情况下将编辑器文本区域的整个值写入预览窗口?

编辑:下面是代码中正在发生的事情:

代码语言:javascript
运行
复制
editor.addEventListener('keydown',function(event){
            setTimeout(function(){
                if(previewWinRef){
                    previewWinRef.location = "data:text/html;base64,"+Base64.encode(editor.value);
                }
            },100);
        });

基本上,每次你按下一个键的时候,我都会刷新结果,只有当你打开预览窗口的时候,你才能打开“文件->打开新标签”。由于某些原因,我似乎无法访问预览窗口的文档,即使编辑器窗口创建了它,而且它只是一个数据URL?窗口{} 屏幕截图

这是编辑。

EN

回答 2

Stack Overflow用户

发布于 2014-11-04 19:44:17

试试这个:

代码语言:javascript
运行
复制
var win = window.open("about:blank", "title");
win.document.getElementsByTagName("html")[0].innerHTML = document.body.getElementsByTagName("textarea")[0].value;
票数 0
EN

Stack Overflow用户

发布于 2014-11-04 19:46:03

原答案已更新。

您可以从新选项卡中使用document对象的documentElement属性。这里的问题是,如果将新选项卡的window.location域设置为另一个站点(或者在您的例子中是一个数据字符串),一些浏览器会抱怨相同来源的策略冲突。

代码语言:javascript
运行
复制
previewWinRef = window.open("about:blank");
previewWinRef.document.documentElement.innerHTML = editor.value;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26743452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档