2010年7月27日火曜日

選択文字列をBloggerコード貼りつけ用文字列に変換したい その2

前のものはHTMLのエスケープが少々やっかいだったので、少し改良。

javascript:

function getSelectedTextAndReplace() {
    IE='\v'=='v';
    var SelectedText;
    if (IE) {
        SelectedText = document.selection.createRange().text;
    } else {
        SelectedText = window.getSelection().toString();
    }
    alert (strToBloggerCodeTag(SelectedText));
}

function strToBloggerCodeTag(str) {
  return "<pre class=\"prettyprint\">\n" + escapeHTML(str) + "\n</pre>";
}

function escapeHTML(strTarget){
    var div = document.createElement('div');
    var text =  document.createTextNode('');
    div.appendChild(text);
    text.data = strTarget;
    return div.innerHTML;
}

getSelectedTextAndReplace();

void(0);

参考
Javascript/HTML特殊文字のエスケープ - 俺の基地