将代码荧光笔应用于Textarea

时间:2017-10-02 14:36:26

标签: javascript jquery

我的网站上有一个textarea包含PHP代码。

我想让用户能够修改代码,然后运行它。

所以,我制作了一个名为modifyCode的文本区:

 <textarea id="modifyCode"></textarea>

到目前为止,我已经设法运行了在textarea中编写的PHP代码。

但我真的很想将代码荧光笔应用到我的文本框中。在这方面,我尝试了几种方法:

  1. 我试过“highlight.js” - &gt; https://highlightjs.org/

  2. 我试过“codemirror” - &gt; https://codemirror.net/

  3. 我不仅无法突出显示我的PHP代码,而且还无法再运行。

    我需要提一下,同样的方法可以很好地突出显示XML代码,但它也不会运行!

    据我了解,当我们应用这些代码荧光笔时,textarea将不再像textarea那样。那么,无论如何我可以突出显示我的PHP代码然后运行它吗?

1 个答案:

答案 0 :(得分:2)

遇到此问题的一种方法是制作一个名为modifyCodeDiv的中间DIV:

<div id="modifyCodeDiv" contenteditable="true"></div>

modifyCodeDiv获得modifyCode textarea:

的值
document.getElementById("modifyCodeDiv").innerHTML =
document.getElementById("modifyCode").value;

因此,用户可以修改div modifyCodeDiv中的代码。

要执行代码,您需要将modifyCodeDiv的值发送到modifyCode。由于div没有value属性,您需要执行以下操作:

var my_element = document.getElementById('modifyCodeDiv');      
var my_str = my_element.innerText || my_element.textContent; 

document.getElementById("modifyCode").value = my_str;

此外,您可以将highlight.js应用于div [{1}}。