2016-10-05 16 views
-1

CMSに問題があります。登録商標(R)やコピー権(C)などの記号が付いた製品CMSページを挿入できない場所を使用しています迷惑なので)私は回避策が必要です。ページの特定のテキストをjQueryに置き換えよう

実際のシンボル '®'でテキスト文字列(r)を置き換えるコードを作成しようとしています。

Iveが閉じると、ページが読み込まれ、テキスト文字列がシンボルに変更されますが、無限ループに巻き込まれているようです。どのように私はこれを停止するには?

また、ページが読み込まれてから文字列がシンボルに変わるまでに遅延があります。これをやめることができますか、それともリースを短縮しますか?注:遅延は、CMSで実行した場合にのみ発生します。私はそれに次のコードだけでテストページを行うときには、1つではないようです。

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 /フレームワークでは、出力をバッファリングしたり、出力をインターセプトしたり、サーバ側で置換を行うことができます。

あなたは

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

のような何かをして、クライアント側でそれをしなければならない場合は、それを反復処理後、代替品を保管するためのオブジェクト(マップ)を使用して、これをneatenことができます。フラッシュは、置換が完了するまで内容を隠さない限り、かなり避けられないでしょう。

+0

私のテキストのタイプミス - 私は、製品のCSV(ないCMS)ファイルを言うことを意味しました。これは問題の場所です.HTMLシンボルはCMSで動作しますが、CSVからインポートすることはありません。そのため、製品をエクスポート、編集した後、CSVファイルを使用して再度インポートするたびに、シンボルは '?' 。このため、クライアント側でjQueryハックを追加する必要があります。それらをエクスポート/インポートする場合がはるかに理にかなっての質問はあらゆる場所にあるにもかかわらず、uのための – DaveP19

+0

良い答え+1、... :) – Ted

+1

ああOKは、インポート/エクスポート処理中に置き換えを行うことができますか?通常、このような問題の場合、絶対的な最後の手段としてクライアントサイドのハックを使用するのが最善です。私が持っている唯一の他の考えは、なぜCSVがHTMLエンティティを処理できないのでしょうか?私はセミコロンを推測するでしょうか?特定の問題だけでなく、すべてのhtmlエンティティについて問題を解決する問題のキャラクターを逃れることが、単なる問題ではないかと思います – Brian

関連する問題