MediaWiki:Gadget-Ae-to-Aelig.js: различия между версиями
Содержимое удалено Содержимое добавлено
Нет описания правки |
Нет описания правки |
||
Рæнхъ 6:
wgAe.init = function() {
wgAe.APressed = false;
if(this.lengh == 0) return this;
return $(this).setSelection(position, position);
jQuery.fn.getCursorPosition = function(){
return $(this).getSelectionStart();
};
jQuery.fn.getSelectionStart = function(){
if(this.lengh == 0) return -1;
input = this[0];
var pos = input.value.length;
if (input.createTextRange) {
var r = document.selection.createRange().duplicate();
r.moveEnd('character', input.value.length);
if (r.text == '')
pos = input.value.length;
pos = input.value.lastIndexOf(r.text);
} else if(typeof(input.selectionStart)!="undefined")
pos = input.selectionStart;
return pos;
};
jQuery.fn.setSelection = function(selectionStart, selectionEnd) {
if(this.lengh == 0) return this;
input = this[0];
if (input.createTextRange) {
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionEnd);
range.moveStart('character', selectionStart);
range.select();
} else if (input.setSelectionRange) {
input.focus();
input.setSelectionRange(selectionStart, selectionEnd);
}
return this;
};
wgAe.timeFlag = 0;
$(
function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
Строка 25 ⟶ 57 :
} else if (wgAe.APressed && $.now() - wgAe.timeFlag < 500) {
if (code == 84) {
var $target=$(e.target);
var caps = false;
var caretPosition = $target.getSelectionStart(
▲ var val = $('#wpTextbox1').val();
▲ var enteredKey = val.slice(caretPosition[0] - 1,
enteredKey.toUpperCase() === enteredKey ? caps = true
: caps = false;
var pre = val.slice(0, caretPosition
var ins = caps ? 'Ӕ' : 'ӕ';
val = pre + ins
+ val.slice(caretPosition
$
wgAe.APressed = false;
e.stopPropagation();
Строка 50 ⟶ 79 :
});
};
▲ $(document).ready(wgAe.init);
▲ });
|