From a312abb668e7800b3e1651c9a1b457ede8f40c32 Mon Sep 17 00:00:00 2001 From: anomen Date: Mon, 23 Apr 2012 18:03:34 +0200 Subject: [PATCH] www-apps/pmwiki - cookbook - aescrypt - IE fix --- www-apps/pmwiki/cookbook/AesCrypt/aescrypt.php | 2 +- www-apps/pmwiki/cookbook/AesCrypt/main.js | 46 +++++++++++--------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/www-apps/pmwiki/cookbook/AesCrypt/aescrypt.php b/www-apps/pmwiki/cookbook/AesCrypt/aescrypt.php index cb0b2fb..c9a7580 100644 --- a/www-apps/pmwiki/cookbook/AesCrypt/aescrypt.php +++ b/www-apps/pmwiki/cookbook/AesCrypt/aescrypt.php @@ -10,7 +10,7 @@ (at your option) any later version. */ -$RecipeInfo['AesCrypt']['Version'] = '2012-04-13'; +$RecipeInfo['AesCrypt']['Version'] = '2012-04-23'; SDV($AesCryptKDF, 'sha256_dup'); SDV($AesCryptCipherToken, '(:aes '); diff --git a/www-apps/pmwiki/cookbook/AesCrypt/main.js b/www-apps/pmwiki/cookbook/AesCrypt/main.js index 38472a1..3899ffc 100644 --- a/www-apps/pmwiki/cookbook/AesCrypt/main.js +++ b/www-apps/pmwiki/cookbook/AesCrypt/main.js @@ -5,6 +5,7 @@ * http://submodal.googlecode.com * http://www.pmwiki.org/wiki/Cookbook/DesCrypt * http://www.pmwiki.org/wiki/Cookbook/AesCrypt + * http://the-stickman.com/web-development/javascript/finding-selection-cursor-position-in-a-textarea-in-internet-explorer/ * * */ @@ -300,29 +301,27 @@ AesCrypt.saveSelection = function() if (document.selection) { // IE variant textarea.focus(); - //var sel = document.selection.createRange(); - var bm = document.selection.createRange().getBookmark(); - var sel = textarea.createTextRange(); - sel.moveToBookmark(bm); - - var sleft = textarea.createTextRange(); - sleft.collapse(true); - sleft.setEndPoint('EndToStart', sel); - var start = sleft.text.length - var end = sleft.text.length + sel.text.length; - - // alert the selected text in textarea - //alert(">" + sel.text + "<"); - - // add 'magic' constants, no idea why. - return ['enc', start+1, end+2]; + var range = document.selection.createRange(); + var stored_range = range.duplicate(); + stored_range.moveToElementText(textarea); + stored_range.setEndPoint( 'EndToEnd', range ); + var start = stored_range.text.length - range.text.length; + var end = start + range.text.length; + + var sel = textarea.value.substring(start, end); + var st = textarea.value.substring(0,start); + var et = textarea.value.substring(end); + return ['enc', st, sel, et]; } else { var start = textarea.selectionStart; var end = textarea.selectionEnd; if (start < end) { - return ['enc', start, end]; + var sel = textarea.value.substring(start, end); + var st = textarea.value.substring(0,start); + var et = textarea.value.substring(end); + return ['enc', st, sel, et]; } else { return null; @@ -332,19 +331,14 @@ AesCrypt.saveSelection = function() AesCrypt.getSelection = function() { - var start = AesCrypt.mode[1]; - var end = AesCrypt.mode[2]; - var textarea = document.getElementById('text'); - var sel = textarea.value.substring(start, end); - return sel; + return AesCrypt.mode[2]; } -AesCrypt.replaceSelection = function(replace) +AesCrypt.replaceSelection = function(replacement) { var textarea = document.getElementById('text'); var start = AesCrypt.mode[1]; - var end = AesCrypt.mode[2]; - var len = textarea.value.length; - textarea.value = textarea.value.substring(0,start) + replace + textarea.value.substring(end,len); + var end = AesCrypt.mode[3]; + textarea.value = start + replacement + end; } -- 2.11.4.GIT