Search

1/14/2008

bookmarklet: replaceGtRtAmp

http://chunghe.googlecode.com/svn/trunk/bookmarklet/replaceRtGtAmp/index.htm
這是為 Blooger 專用的,目的是把選取範圍內的<&> encode成 html entities,Firefox only。
對一個 input/textarea f,f.selectionStart 可以取得選取範圍開始的 index,f.selectionEnd 可以取得選取範圍結束的 index,另外修改完 textarea 內容後,Firefox 會 focus 到 textarea 最上面的位置,所以先用 f.scrollTop 把 scrollbar 的位置存下來,最後再設定回去。


<a href="javascript:
var ta = document.getElementById('textarea');
var scrollTop = ta.scrollTop;
var start = ta.selectionStart;
var end = ta.selectionEnd;
var s1 = ta.value.substring(0, start);
var s2 = ta.value.substring(start, end);
var s3 = ta.value.substring(end, ta.value.length);

s2 = s2.replace(/&/g, '&amp;amp;').
replace(/</g, '&amp;lt;').
replace(/>/g, '&amp;gt;');
ta.value =s1+s2+s3;
ta.scrollTop = scrollTop;

void 0;">replaceGtRtAmp</a>

沒有留言: