替换textarea脚本+ RTE中的文本

时间:2016-03-15 01:46:32

标签: javascript replace textarea rte

我有一个javascript代码,可以替换文本区域中写的一些单词。例如。如果我写单词“dog”,它会将其改为单词“cat”。

<html>
<head>
<script>
function changeText(){
dt=document.getElementsByTagName("textarea")[0];
dt.value=dt.value.replace(/dog/g,"cat");
dt.value=dt.value.replace(/blue/g,"red");
dt.value=dt.value.replace(/good/g,"bad");
}
</script>
</head>
<body>
<textarea rows="10" cols="65"></textarea> <br>
<input type="button" value="change" onclick="changeText()">
</body>
</html>

我对此脚本有两个问题,我不知道如何修复它。

  1. 如何使用单词调用外部文件进行替换?我将有200多个单词,我将它们放在单独的文件中会更好。
  2. 如何实现一些简单的RTE(例如Nicedit)并且仍然有工作脚本?我试了一下,脚本不起作用......
  3. 提前感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

  1. 出于安全考虑,您的可能性有限。最好的方法是使用AJAX技术从服务器加载txt / json / xml文件。请记住,这是一种异步方法。如果没有JQuery(最流行的JS库),使用纯Javascript,您可以使用以下代码实现它:

    var fileContent = '';
    var client = new XMLHttpRequest(); // we create a request
    client.open('GET', '/foo.txt'); // foo.txt is the name of the file
    client.onreadystatechange = function() {
      fileContent = client.responseText;
      alert("Hooray! My file was loaded, this is its content: " + fileContent );
    }
    client.send(); // and we send a request
    
  2. 每个富文本编辑器都有自己的JS库和获取编辑器内容的方法,所以它真的取决于它。对于nicedit,就像这样(假设你的textarea有一个ID):

    var nicInstance = nicEditors.findEditor('idOfYourTextarea');
    var notes = nicInstance.getContent(); // voila - your content