2016-10-05 4 views
-1

У меня проблема с CMS. Я использую, где я не могу вставить страницу CMS продукта с такими символами, как зарегистрированный товарный знак (R) и копирование справа (C) и т. Д. (Очень раздражает), поэтому мне нужна работа.Замена определенного текста на странице с помощью jQuery

Im пытается выработать код для замены текстовой строки (r) фактическим символом '®'.

Ive приближается, страница загружается, а текстовая строка заменяется символом, но кажется, что она попадает в бесконечный цикл. Как мне это остановить?

Кроме того, существует задержка с момента загрузки страницы, когда строка меняется на символ - могу ли я остановить это или на аренде сократить его? Примечание. Задержка возникает только тогда, когда я запускаю ее в CMS. Кажется, что нет, когда я тестирую страницу с помощью только кода ниже.

var replaced = $("body").html().replace('(r)','®'); 
 
$("body").html(replaced);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h3>Hello, this is a test replacing(r).</h3> 
 
<h4>Hello, this is a test replacing(r).</h4> 
 
<p>Hello, this is a test replacing(r).</p>

ответ

1

ли работать HTML сущности? &copy; или &reg; вам действительно не нужно заменять объекты на стороне клиента. В некоторых языках/CMS/framework вы можете буферизовать вывод или перехватывать вывод, а затем выполнять замену на стороне сервера.

Если вы должны сделать это на стороне клиента делать что-то вроде

var content = $("body").html(); 
content = content.split('(r)').join('&reg;'); 
content = content.split('(c)').join('&copy;'); 
$("body").html(content); 

Вы можете обметать это с использованием объекта (карты) для хранения замен затем перебора над ним. Вспышка довольно неизбежна, если вы не скрываете контент до тех пор, пока не будет выполнена замена, что, вероятно, еще более нежелательно.

+0

Typo in my text - Я хотел сказать файл CSV (не CMS) продукта. Здесь проблема заключается в том, что в CMS работают символы html, но они не будут импортироваться из CSV, поэтому каждый раз, когда продукты экспортируются, редактируются и затем снова импортируются (используя CSV-файл), символы заменяются на «?» , Вот почему мне нужно добавить jQuery-хак на стороне клиента. – DaveP19

+0

Хороший ответ +1 для u, хотя вопрос повсюду ... :) – Ted

+1

А как это хорошо, однако, если импортировать/экспортировать их, вы можете заменить на процесс импорта/экспорта? Обычно для таких проблем лучше всего использовать только клиентские хаки как абсолютное последнее средство. Единственная другая мысль, которая у меня есть, - почему CSV не может обрабатывать html-объекты, которые я бы предпочел в виде двоеточия? Интересно, просто ли это вопрос преодоления проблемных символов, которые исправили бы проблему для всех html-сущностей, а не только для конкретных – Brian