Программирование > JavaScript & JScript
FindTextRange
(1/1)
Vitunchik:
Кто подскажет, в чем заключаются грабли - искать ищет, а выделять не хочеи!
Конечно кривовато, но мне не надо определенных символов, мне достаточно сканкодов...
И еще - как организовать подобие BackSpace ( mystring.length--; не работает, какие идеи?)
mystring = new String("");
myst = new String("");
function ftr(mystr) {
objFoundRange = document.all.mytext.createTextRange();
if (objFoundRange.findText(mystr)) {
myst = "" + mystr + "";
objFoundRange.pasteHTML = "cool";//mystobj
// alert(objFoundRange.text);
objFoundRange.scrollIntoView;
}
}
window.status = mystring;
function find_string() {
mykey = window.event.keyCode;
if (mykey == 8) {
mystring.length--;}
else if (mykey == 27) {mystring="";} else {
mystring += scancode(mykey);} //
window.status = mystring;
if (mystring.length > 0) { ftr(mystring); }
}
function scancode(code) {
if (code == 81) {return "й";} if (code == 65) {return "ф";} if (code == 90) {return "я";}
if (code == 87) {return "ц";} if (code == 83) {return "ы";} if (code == 88) {return "ч";}
if (code == 69) {return "у";} if (code == 68) {return "в";} if (code == 67) {return "с";}
if (code == 82) {return "к";} if (code == 70) {return "а";} if (code == 86) {return "м";}
if (code == 84) {return "е";} if (code == 71) {return "п";} if (code == 66) {return "и";}
if (code == 89) {return "н";} if (code == 72) {return "р";} if (code == 78) {return "т";}
if (code == 85) {return "г";} if (code == 74) {return "о";} if (code == 77) {return "ь";}
if (code == 73) {return "ш";} if (code == 75) {return "л";} if (code == 188) {return "б";}
if (code == 79) {return "щ";} if (code == 76) {return "д";} if (code == 190) {return "ю";}
if (code == 80) {return "з";} if (code == 186) {return "ж";}
if (code == 219) {return "х";} if (code == 222) {return "э";}
if (code == 221) {return "ъ";} return "";
}
Некоторый текст
Макс:
Vitunchik
ИМХО без комментариев к коду большая часть посетителей даже не будут пытаться разобраться.
И упрости код, удали из него все лишнее
Vitunchik:
Ищется строка mystr в body=mytext:
function ftr(mystr) {
objFoundRange = document.all.mytext.createTextRange();
if (objFoundRange.findText(mystr)) {
myst = "" + mystr + "";
objFoundRange.pasteHTML = mystobj;
// alert(objFoundRange.text);
objFoundRange.scrollIntoView;
}
}
Для проверки того, что строка все-таки находится можно раскомментировать alert(...);
Т.е. по идее он должен найти строку, что он и делает, а затем найденное заменить, чего он и не может сделать
Макс:
Vitunchik
объект mytext - это textarea ?
попробуй вместо
--- Цитировать ---objFoundRange.pasteHTML = mystobj;
--- Конец цитаты ---
(кстати правильно objFoundRange.pasteHTML(myst);) вставить
objFoundRange.text = myst;
Vitunchik:
mytext - Все, что находится внутри тега body
Хорошо, попробую...
objFoundRange.pasteHTML(myst);
Навигация
Перейти к полной версии