2016-03-15 149 views
0

我有一個JavaScript代碼,用於替換文字區域中的某些字詞。例如。如果我寫「狗」字,它會將其改爲「貓」字。替換textarea腳本中的文本+ RTE

<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)並且仍然有工作腳本?我試試看,腳本不起作用...

在此先感謝您的幫助! :)

回答

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