#javascript #google-closure
#javascript #google-закрытие
Вопрос:
У меня есть текстовый редактор, который предоставляет как исходный код, так и форматированный текстовый редактор. Допустим, у меня есть следующее в моей текстовой области
<p>A Paragraph</p>
<script type="text/javascript">
$$('.a-class');
</script>
Я успешно могу сохранить этот текст в RTE, хотя, если я попытаюсь извлечь из него эти данные (вызвав Field.getCleanContents () ), это приведет к следующему
<p>A Paragraph</p>
<script type="text/javascript">
$('.a-class');
</script>
Итак, мне интересно, есть ли простой способ предотвратить удаление из closure этого дополнительного символа ‘$’.
Обновить
Покопавшись в куче кода, я обнаружил, что произошла строка.replace, и есть что-то немного хитрое в функции Javascript string.replace при использовании двойного доллара
"foo bar baz".replace("bar", "$$fancy")
> "foo $fancy baz"
Способ, которым я обошел это, заключался в эффективном сокращении строки и возврате из нее новой строки.
function glue(msg, old, replacement){
var oldIndex = msg.indexOf(old);
var prefix = msg.substr(0, oldIndex);
var suffix = msg.substr(oldIndex old.length);
return prefix replacement suffix;
}
glue("foo bar baz", "bar", "$$fancy");
> "foo $$fancy baz"