2016-03-15 3 views
0

У меня есть код javascript, который заменяет некоторые слова writen в текстовой области. Например. Если я напишу слово «собака», это изменит его на слово «кошка».Заменить текст в textarea script + 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. Из соображений безопасности ваши возможности ограничены. Лучший способ сделать это - загрузить файл txt/json/xml с вашего сервера с использованием технологии AJAX. Имейте в виду, что это асинхронный метод. Без 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 это так (предполагается, что текстовое поле имеет идентификатор):

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

 Смежные вопросы

  • Нет связанных вопросов^_^