2016-10-07 3 views
0

Я сделал небольшой генератор кода для моей командыJavascript найти и заменить

Это очень просто, вы просто заполнить поля & он эффективно выполняет поиск и замену в DIV ниже и показывает, что новый код должен быть. Замечательно!

У меня есть проблема в том, что для того, чтобы получить код, показывающий, как ясный текст на экране, я должен был заменить все специальные символы с ниже (например & ЛТ)

enter image description here

When ручное копирование и вставка, это не проблема. Однако у меня есть кнопка, которая копирует содержимое DIV и экспортирует в .html-файл.

Это не выполняет код, поскольку копирует фактическое содержимое (включая отсутствие специальных символов).

Есть ли способ заставить этот код работать при экспорте? Есть ли простая функция, чтобы вернуть исходный код перед экспортом?

Генератор кода эффективно много находок и заменяет ввести пользовательские переменные, то ниже:

[code]function findMyText2(needle2, replacement2) { 
if (haystackText.length == 0) { 
     haystackText = document.getElementById("haystack").innerHTML; 
} 
var match = new RegExp(needle2, "ig");  
var replaced = ""; 
if (replacement2.length > 0) { 
     replaced = haystackText.replace(match, replacement2); 
} 

else { 
     var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + needle2 + "</div>"; 
     replaced = haystackText.replace(match, boldText); 
} 
document.getElementById("haystack").innerHTML = replaced; 
haystackText = document.getElementById("haystack").innerHTML; 

Полный код для редактирования является: enter image description here

Спасибо заранее.

+0

пожалуйста, вы можете разместить код генератора, чтобы увидеть, чего не хватает? –

+0

i guess jQuery 'text()' does escape html entyties ... – philipp

+0

Привет, я добавил код там тоже. Вы можете видеть, что это очень просто и делает то, что мне нужно - я просто не знаю, как удалить все эти специальные символы. ----- Даже простой код для копирования и вставки содержимого экрана, а не бэкэнд-кода, был бы идеальным, но еще ничего не нашел – Kieran

ответ

1

Из того, что я понял из-за проблемы, вам в основном нужно освободить содержимое div. Вот как вы можете это сделать.

HTML

<div style="display:none" id="dummy"></div> 

JQuery

var decoded = $("#dummy").html(encoded).text(); 

Этот код устанавливает внутренний HTML в "фиктивной" DIV в качестве закодированного, что делает Jquery декодировать его. Затем text() просто возвращает декодированный код.

Для получения дополнительной информации смотрите здесь - Javascript decoding html entities

+0

Спасибо, это похоже на то, что я хотел сделать. Я создал файл js со своим скриптом в нем (смена имени div, конечно) и использовал кнопку для вызова декодированного() при нажатии - но это ничего не делает? – Kieran

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