javascript - 如何创建像 jsfiddle 这样的所见即所得

标签 javascript jquery html css

我正在尝试创建自己的 jsfiddle 功能。

三个带有一些代码的文本框,但不知道如何用它们的内容制作(和重新制作)文件。

或者,是否有另一种无需创建文件即可播放代码的方法?

$('.button').on('click', function(){
// create demo.css, demo.html and demo.js   
// open a new tab and play all the code
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class='txthtml'>
<div class='parent'>
<div class='title'>lorem 01</div>
<div class='title'>lorem 02</div>
<div class='title'>lorem 03</div>
</div>
</textarea>

<textarea class='txtcss'>
.parent{
background:gold;
}

.title{
margin:5px 0;
backgorund:lightgreen;
}
</textarea>

<textarea class='txtjs'>
$('.title').on('click', function(){
console.log('clicked');
});
</textarea>
<br><br>
<button>CLICK</button>

最佳答案

创建iframe并将内容写入iframe。 jsFiddle Demo ,不在这里工作,因为不允许访问 iframe。

$('button').on('click', function() {
  var addJquery = $('#addJqury').is(':checked')
  var html = $('.txthtml').val(),
    css = $('.txtcss').val(),
    js = $('.txtjs').val(),
    output = '<style>' + css + '</style>' +
    html +
    '<script>' + js + '<\/script>';
  if (addJquery)
    output = '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"><\/script>' + output;

  var iframe = window.results.document;
  
  iframe.write(output);
  iframe.close();
});
textarea{min-height:80px;min-width:200px}
iframe{width:100%;height:100%;display:block}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<textarea class="txthtml">
<div class='parent'>
<div class='title'>lorem 01</div>
<div class='title'>lorem 02</div>
<div class='title'>lorem 03</div>
</div>
</textarea>

<textarea class='txtcss'>
.parent{
background:gold;
}

.title{
margin:5px 0;
backgorund:lightgreen;
}
</textarea>

<textarea class='txtjs'>
$('.title').on('click', function(){
console.log('clicked: ' + $(this).html());
});
</textarea><br>
<input type="checkbox" id="addJqury" checked> Add Jquery?
<br><br>
<button>CLICK</button>
<hr>Results:
<hr>
<iframe name="results" src="about:blank"></iframe>

关于javascript - 如何创建像 jsfiddle 这样的所见即所得,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53574573/

相关文章:

javascript - 检测 3D 对象网格上的点击

javascript - 有效地在 word_number 键上对字典(或 js 中的任何键值数据结构)进行排序

javascript - 尝试获取标签 : $(this). 中的值 find ("").text()

javascript - 如何使用本地存储在新的html页面中显示文本?

javascript - 自动计算模糊时的 div 值

javascript - 如何在另一个调用this.setState()的函数内部的函数中访问组件的状态?

php - Ajax表单问题

JavaScript - 类切换正在删除类而不是在下次单击时添加

Java正则表达式在HTML文件中查找CSS导入

javascript - OneSignal 获取玩家 ID