javascript - 如何使用ace编辑器制作html和css实时预览

标签 javascript jquery html css ace-editor

我对编码很陌生,所以请保持温和。我正在学习的一所大学给了我一个元素。建立在线交互式教程,与codecademy之类的风向标非常相似。问题是我没有太多使用 javascript 或 jquery 的经验,因为我还没有学过它们。在元素结束时,他们想要的是一个在线交互式教程,其中包含 html 和 css 的实时预览。问题是我不知道如何在没有任何帮助的情况下完成这一切,这就是我来这里的原因。

我一直在做大量的研究,并发现了一些非常好的前景来帮助我实现这一目标。他们是 ace editor 和 codemirror 问题是我找不到可以帮助我的教程。

我已经能够让 html 与实时预览一起工作,但不是 css。这是我的 jquery 代码。

//initializing ace editor
var htmleditor = ace.edit("htmleditor");
htmleditor.setTheme("ace/theme/twilight");
htmleditor.session.setMode("ace/mode/html");

var csseditor = ace.edit("csseditor");
csseditor.setTheme("ace/theme/twilight");
csseditor.session.setMode("ace/mode/css");
//html editor
function showHTML() {
    $('#return').html(htmleditor.getValue());
}

function showHTMLInIFrame() {
    $('#return').html("<iframe src=" + "data:text/html," + encodeURIComponent(htmleditor.getValue()) + "></iframe>");
}
htmleditor.on("input", showHTMLInIFrame);

//css editor
function showCss() {
    $('#return').css(csseditor.getValue());
}

function showCssInIFrame() {
    $('#return').css("<iframe src=" + "data:text/css," + encodeURIComponent(csseditor.getValue()) + "></iframe>");
}
csseditor.on("input", showCssInIFrame);

我已将所有必需的 js 文件附加到我的 html。任何帮助将不胜感激,即使你只是指出我正确的方向。不过,如果有人能想出解决我面临的问题的方法,请告诉我。

问候

菲尔

最佳答案

构建您的逻辑,使您拥有两个 ACE 编辑器(您已经完成)和一个您将要更新的 iframe。将 HTML 编辑器的结果与 CSS 编辑器的结果结合起来,并将它们分配给单个 iframe。

提前创建您的 iframe,并为其指定一个 id 值。

<iframe id="return"></iframe>

function updateIframe() {
  var html = htmleditor.getValue()  
  var css = htmleditor.getValue()

  $('#return').srcdoc = html + css
}

htmleditor.on("input", updateIframe);
csseditor.on("input", updateIframe);    

关于javascript - 如何使用ace编辑器制作html和css实时预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262386/

相关文章:

javascript - 更改选择选项时再次从数据库获取数据

php - 我们应该使用什么技术来防止通过粘贴 cookie 自动登录?

javascript - 在 Chrome 应用程序中重用 UDP 套接字的地址

html - 如何使用 Skeleton CSS 框架更改表格大小

javascript - Protractor 找不到密码为 id 的 gmail 输入

jquery - 如何在 jquery 中停止事件传播?

javascript - 是否有一个插件可以在我的网页中显示 HTML 代码

页面加载后上传 jQuery 文件

html - 设置 Flex 列表项之间的间距

html - 单击文件上传时如何仅显示 pdf、doc、docx 格式