主要目标:
创建一个能够实时预览HTML / CSS代码的网站。
更具体地说:
HTML / CSS代码可以在某些特定部分中由用户编辑。因此,实时预览中的代码不会来自文本区域,而是来自div。
所以,在我的Previous Question中,我试图找到一种方法,在从黑匣子中获取代码后使实时预览框工作。它不起作用,因为代码是在div
标记中提供的,而不是textarea
。我想补充一点,div
代码中的代码使用xmp
代码,因为某些部分可以从用户处理。
现在,我已将divs
替换为textarea
代码,但EDIT功能无效。
主要问题:
如何编辑textarea
文本的部分内容?下面,我使其适用于div
代码但不适用于textarea
。如何为textarea
进行以下工作?
$('input#thebox1').keypress(function(e) {
console.log($(this).val());
if(e.which == 13 && $(this).val().length > 0) {
var c = $(this).val();
$('.popup1').removeClass().addClass(c).text(c);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Replace Title Background Color: </div><input type="text" id='thebox1'>
<div id="copyTarget1" class="innerbox css">
<blockquote>
<pre>
<code>
.title
{
background: #<b class="popup1" style="color:#FF0000;">value </b>;
vertical-align: middle;
}
</code>
</pre>
</blockquote>
</div>
<br><br><br><br><br><br>
答案 0 :(得分:0)
我考虑采用另一种方法,使用Ace(Cloud9编辑器)让您的生活更轻松。这是一个很棒的解决方案,可以获得不同语言的代码编辑器。全部内置JavaScript。它很容易集成。我刚下载它来创建你想要构建的案例。
您可以在此处找到我刚刚制作的示例:https://dubaloop.io/dev/html_css_js_editor/
基本上,您为ace加载库:
<script src="src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
然后为HTML,CSS,JavaScript编辑器创建一个“预”容器:
<pre class="editor" id="editor_js">
function foo(items) {
alert('works');
}</pre>
您可以使用以下函数将它们转换为代码编辑器:
var editor_js = ace.edit("editor_js");
editor_js.setTheme("ace/theme/monokai");
editor_js.session.setMode("ace/mode/javascript");
它将生成一个很好的代码编辑器,可以通过错误,警告等。您也有不同的主题。你可以看到它非常用户友好。在我的示例中,我只获取每个代码容器的内容并将其发送到空白iframe。要检索您可以使用的内容:
editor_js.getValue();
检查我上面发送给你的例子的源代码。我还使用以下示例创建了.zip:https://dubaloop.io/dev/html_css_js_editor/example.zip
看看这是否适合你。
ACE的GitHub回购:https://github.com/ajaxorg/ace-builds
我希望它有所帮助。
更新:
我决定将重播的回复更新为您的上一条评论。关于它的一些事情:
我刚刚制作了你想要做的简短版本:我在HTML编辑器中替换<h1>
的内容,在文本字段输入中输入;类似于你想要实现的目标。我将html代码编辑器设置为只读,因此您无法对其进行编辑。看看,让我知道。
我希望你能从这里开始工作。不过,我喜欢选项1:P
我希望它有所帮助。