29 באפר׳ 2009

ספירת מילית ותווים WC


נתבקשתי לעשות ראיון-טוויטר, שזה אומר שכל תשובה לשאלה בראיון צריכה להיות באורך של לא יותר מ 140 תווים
את הראיון כבר השלמתי אבל סיימתי אותו בתחושת חוסר סיפוק. ולמה? מכיוון שלא הייתי בטוח שלכל התשובות אכן עמדתי במבחן ה 140. לחלק ספרתי אבל זה מתיש וברור שצריך כאן כלי אוטומטי.
חיפשתי משהו שסופר ומצאתי בערך, כלומר לא בדיוק מה שחיפשתי. אז קצת העתקתי והרבה שיפרתי וכתבתי את ה bookmarklet הבא ועכשיו אני הרבה יותר רגוע. אפשר לספור מילים ותווים ע"י סימון טקסט ולחיצה על ה bookmarklet

WC

מעניין שהאתגר הגדול יותר היה לגרום לו לעבוד ב gmail עם המערכת המופרעת של ה iframes שהולכת שם.
בדקתי בספארי ופיירפוקס. אין ברשותי אקספלורר, אז נותר רק להחזיק אצבעות, אבל אם יש באג נא לדווח.

הקוד במלואו, קצת מקומפקט להלן:


javascript:(function(){
var t,d=document;
if(location.href.indexOf('mail.google.com')>0){
d=d.getElementById('canvas_frame').contentDocument;
if(d.getElementsByTagName('iframe').length)d=d.getElementsByTagName('iframe')[0].contentDocument;
}
if(d.getSelection)t=d.getSelection();
else if(d.selection)t=d.selection.createRange();
if(t.text!=undefined)t=t.text;
if(!t||t==''){
a=document.getElementsByTagName('textarea');
for(i=0;i=a.length;i++){
if(a[i].selectionStart!=undefined&&a[i].selectionStart!=a[i].selectionEnd){
t=a[i].value.substring(a[i].selectionStart,a[i].selectionEnd);
break;
}
}
}
if(!t||t=='')alert('please select some text');
else{
alert('Chars: '+t.toString().length+'\nWords: '+t.toString().match(/(\S+)/g).length);
}
})()


אין תגובות: