Как написать надстрочный знак, зарегистрированный ® в названии продукта
Наш клиент хочет предложить несколько продуктов, которые являются зарегистрированными торговыми марками. Мы включили знак (R) в соответствующие названия продуктов. К сожалению, они не отображаются надстрочным индексом, как того желает заказчик. Теперь мы просто попытались использовать теги <sup>
, чтобы сделать знак надстрочным. Эти HTML-теги удаляются из строки, что не приводит к изменениям.
Как мы можем добавить надстрочный знак ® в название продукта?
3 answers
Ты не можешь. По крайней мере, не быстрым и простым способом.
Вероятно, единственный способ добиться этого - погрузиться в catalog/product/view.phtml
и вокруг строки 51 заменить
<h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
Для
<h1><?php echo str_replace('®', '<sup>®</sup>', $_helper->productAttribute($_product, $_product->getName(), 'name')) ?></h1>
На мой взгляд, это немного грязно, но сделает свое дело
Мы решили эту проблему также другим, менее инвазивным способом, поскольку только для целей презентации важно иметь надстрочный знак. Поэтому мы включили следующий фрагмент кода JavaScript, который заменяет все вхождения ® на <sup>®</sup>
:
String.prototype.replaceAll = function(str1, str2, ignore)
{
return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
}
jQuery(document).ready(function(){
var n=jQuery("body").html().replaceAll('®','<sup>®</sup>');
jQuery("body").html(n);
});
Это поможет написать верхний индекс, зарегистрированный в названии продукта в magento. - Поместите код в $(документ).готово, все работает нормально
$('body :not(script)').contents().filter(function() {
return this.nodeType === 3;
}).replaceWith(function() {
return this.nodeValue.replace(/[™®©]/g, '<sup>$&</sup>');
});