Попробуйте удалить функцию перевода текста из своей собственной функции только для части расширения.Затем вызовите расширение onclick так, чтобы
(function($){
$.fn.leet = function() {
// Create the Phrase translations arrays
var PhrasesEnglish = ['crap', 'dude', 'hacker',
'hacks', 'you', 'cool', 'oh my god',
'fear', 'power', 'own',
'what the hell', 'elite', 'for the win',
'oh really', 'good game'];
var PhrasesLeet = ['carp', 'dood', 'haxor', 'hax', 'joo',
'kewl', 'omg', 'ph43', 'powwah', 'pwn',
'wth', 'leet', 'ftw', 'o rly', 'gg'];
// Create the Letter translations arrays
var LettersEnglish = ['n', 'b', 'k', 'd', 'e', 'f', 'g', 'h',
'p', 'm', 'r', 'l', 'o', 'q', 's', 't',
'u', 'x', 'w', 'y', 'z', 'c', 'a', 'j',
'i', 'v', ' '];
var LettersLeet = ['/\\/', '|}', '|X', '[)', '3', '|=', 'gee', '|-|',
'|*', '(\\/)', '|2', '1', '()', '0', '$', '+',
'|_|', '><', '\\X/', '\'/', '2', '<', '/\\', '_|',
'|', '\\/', ' '];
// Translates text in input area to/from leet speak
var id = $(this).attr('id');
var inputString = document.getElementById(id).value;
if (document.getElementById('conversionType').value == "e") {
for (i = 0; i < PhrasesEnglish.length; ++i)
inputString = inputString.replace(
new RegExp(PhrasesEnglish[i], "gi"),
PhrasesLeet[i]
);
for (i = 0; i < LettersEnglish.length; ++i)
inputString = inputString.replace(
new RegExp(LettersEnglish[i], "gi"),
LettersLeet[i]
);
}
else {
for (i = 0; i < LettersLeet.length; ++i)
inputString = inputString.replace(
new RegExp(RegExp.escape(LettersLeet[i]), "g"),
LettersEnglish[i]
);
for (i = 0; i < PhrasesLeet.length; ++i)
inputString = inputString.replace(
new RegExp(RegExp.escape(PhrasesLeet[i]), "g"),
PhrasesEnglish[i]
);
}
document.getElementById(id).value = inputString;
};
})(jQuery);
Ваш обработчик onclick будет выглядеть примерно так
<input type="submit" value="Translate" onclick="$('#input').leet();" />
Вот скрипка (я не знаю, как люди могут это прочитать, я думалне работал должным образом, пока я не расшифровал его.) http://jsfiddle.net/ThD29/1/
Кроме того, перевод с 1337 -> английский не работает.Очевидно, у RegExp нет метода с именем escape.Я не знаю много о регулярных выражениях, так что, надеюсь, кто-то еще может указать на ответ.