遊んでいるページにエディターがあります。入力すると更新され、投稿がどのように表示されるかのライブプレビューが表示されます-すべてクライアント側で、ajax はなく、非常に高速です。
キーアップ イベントと変更イベントに応答して、この関数を呼び出します。
var content;
function byId(e) {return document.getElementById(e);}
function onPreview()
{
var modifiedStr, re;
var textArea = byId("threadText");
var threadTextOrig = textArea.value;
content = textArea;
re = new RegExp("\n", "g");
var modifiedStr = threadTextOrig.replace(re, "<br>");
re = new RegExp(":wtf:", "g");
modifiedStr = modifiedStr.replace(re, '<img src="img/smiley_WTF.gif" align="top" alt="WTF | :WTF:">');
re = new RegExp(":\\)", "g");
modifiedStr = modifiedStr.replace(re, '<img src="img/smiley_smile.gif" align="top" alt="Smile | :)">');
re = new RegExp(":-D", "g");
modifiedStr = modifiedStr.replace(re, '<img src="img/smiley_biggrin.gif" align="top" alt="Big Grin | :-D">');
var tgt = byId(previewDiv);
previewDiv.innerHTML = modifiedStr;
var tgt = byId('previewTitle');
var src = byId('title');
var srcVal = src.value;
tgt.innerHTML = "<strong>" + srcVal + "</strong>";
}
html
<input name="title" id="title" value="Waiting for approval" style="width:100%" onchange="onPreview();" onkeyup="onPreview();" onmouseup="onPreview()">
<textarea rows="10" cols="80" id="threadText" name="threadText" onchange="onPreview();" onkeyup="onPreview();" onmouseup="onPreview()"></textarea>