http://www.mediawiki.org/wiki/Special:Code/MediaWiki/54467
Revision: 54467 Author: tparscal Date: 2009-08-05 18:10:08 +0000 (Wed, 05 Aug 2009) Log Message: ----------- Fixed IE regression - .focus() is available in jquery objects always, but on dom objects only in some browsers. Modified Paths: -------------- trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js trunk/extensions/UsabilityInitiative/js/plugins.combined.js trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js Modified: trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js 2009-08-05 18:01:30 UTC (rev 54466) +++ trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js 2009-08-05 18:10:08 UTC (rev 54467) @@ -30,14 +30,14 @@ var e = this.jquery ? this[0] : this; var selText; var isSample = false; - if ( document.selection && document.selection.createRange ) { + if ( document.selection && document.selection.createRange ) { // IE/Opera if ( document.documentElement && document.documentElement.scrollTop ) { var winScroll = document.documentElement.scrollTop; } else if ( document.body ) { var winScroll = document.body.scrollTop; } - e.focus(); + $(this).focus(); var range = document.selection.createRange(); selText = range.text; checkSelectedText(); @@ -58,7 +58,7 @@ } else if ( e.selectionStart || e.selectionStart == '0' ) { // Mozilla var textScroll = e.scrollTop; - e.focus(); + $(this).focus(); var startPos = e.selectionStart; var endPos = e.selectionEnd; selText = e.value.substring( startPos, endPos ); Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2009-08-05 18:01:30 UTC (rev 54466) +++ trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2009-08-05 18:10:08 UTC (rev 54467) @@ -287,14 +287,14 @@ var e = this.jquery ? this[0] : this; var selText; var isSample = false; - if ( document.selection && document.selection.createRange ) { + if ( document.selection && document.selection.createRange ) { // IE/Opera if ( document.documentElement && document.documentElement.scrollTop ) { var winScroll = document.documentElement.scrollTop; } else if ( document.body ) { var winScroll = document.body.scrollTop; } - e.focus(); + $(this).focus(); var range = document.selection.createRange(); selText = range.text; checkSelectedText(); @@ -315,7 +315,7 @@ } else if ( e.selectionStart || e.selectionStart == '0' ) { // Mozilla var textScroll = e.scrollTop; - e.focus(); + $(this).focus(); var startPos = e.selectionStart; var endPos = e.selectionEnd; selText = e.value.substring( startPos, endPos ); Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js =================================================================== --- trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js 2009-08-05 18:01:30 UTC (rev 54466) +++ trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js 2009-08-05 18:10:08 UTC (rev 54467) @@ -20,9 +20,9 @@ var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}} return cookieValue;}};(function($){$.fn.extend({encapsulateSelection:function(pre,peri,post){function checkSelectedText(){if(!selText){selText=peri;isSample=true;}else if(selText.charAt(selText.length-1)==' '){selText=selText.substring(0,selText.length-1);post+=' '}} var e=this.jquery?this[0]:this;var selText;var isSample=false;if(document.selection&&document.selection.createRange){if(document.documentElement&&document.documentElement.scrollTop){var winScroll=document.documentElement.scrollTop;}else if(document.body){var winScroll=document.body.scrollTop;} -e.focus();var range=document.selection.createRange();selText=range.text;checkSelectedText();range.text=pre+selText+post;if(isSample&&range.moveStart){if(window.opera){post=post.replace(/\n/g,'');} +$(this).focus();var range=document.selection.createRange();selText=range.text;checkSelectedText();range.text=pre+selText+post;if(isSample&&range.moveStart){if(window.opera){post=post.replace(/\n/g,'');} range.moveStart('character',-post.length-selText.length);range.moveEnd('character',-post.length);} -range.select();if(document.documentElement&&document.documentElement.scrollTop){document.documentElement.scrollTop=winScroll}else if(document.body){document.body.scrollTop=winScroll;}}else if(e.selectionStart||e.selectionStart=='0'){var textScroll=e.scrollTop;e.focus();var startPos=e.selectionStart;var endPos=e.selectionEnd;selText=e.value.substring(startPos,endPos);checkSelectedText();e.value=e.value.substring(0,startPos)+pre+selText+post+ +range.select();if(document.documentElement&&document.documentElement.scrollTop){document.documentElement.scrollTop=winScroll}else if(document.body){document.body.scrollTop=winScroll;}}else if(e.selectionStart||e.selectionStart=='0'){var textScroll=e.scrollTop;$(this).focus();var startPos=e.selectionStart;var endPos=e.selectionEnd;selText=e.value.substring(startPos,endPos);checkSelectedText();e.value=e.value.substring(0,startPos)+pre+selText+post+ e.value.substring(endPos,e.value.length);if(isSample){e.selectionStart=startPos+pre.length;e.selectionEnd=startPos+pre.length+selText.length;}else{e.selectionStart=startPos+pre.length+selText.length+post.length;e.selectionEnd=e.selectionStart;} e.scrollTop=textScroll;} $(this).trigger('encapsulateSelection');},getCaretPosition:function(){function getCaret(e){var caretPos=0;if($.browser.msie){var postFinished=false;var periFinished=false;var postFinished=false;var preText,rawPreText,periText;var rawPeriText,postText,rawPostText;var periRange=document.selection.createRange().duplicate();var preRange=document.body.createTextRange();preRange.moveToElementText(e);preRange.setEndPoint("EndToStart",periRange);var postRange=document.body.createTextRange();postRange.moveToElementText(e);postRange.setEndPoint("StartToEnd",periRange);preText=rawPreText=preRange.text;periText=rawPeriText=periRange.text;postText=rawPostText=postRange.text;do{if(!postFinished){if(preRange.compareEndPoints("StartToEnd",preRange)==0){postFinished=true;}else{preRange.moveEnd("character",-1) _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs