Upgrade to Xinha 0.931. Xinha has been optimized for size and dozens of issues have been closed
out since the last upgrade . Add Firefox and Xinha buttons to main page to show our support.
This commit is contained in:
@@ -1,149 +1,144 @@
|
||||
/*---------------------------------------*\
|
||||
Find and Replace Plugin for HTMLArea-3.0
|
||||
-----------------------------------------
|
||||
author: Cau guanabara
|
||||
e-mail: caugb@ibest.com.br
|
||||
\*---------------------------------------*/
|
||||
var FindReplace=window.opener.FindReplace;
|
||||
var editor=FindReplace.editor;
|
||||
var is_mo=window.opener.HTMLArea.is_gecko;
|
||||
var tosearch="";
|
||||
var pater=null;
|
||||
var buffer=null;
|
||||
var matches=0;
|
||||
var replaces=0;
|
||||
var fr_spans=new Array();
|
||||
function _lc(_1){
|
||||
return (window.opener.HTMLArea._lc(_1,"FindReplace"));
|
||||
}
|
||||
function execSearch(_2){
|
||||
var _3=editor._doc.body.innerHTML;
|
||||
if(buffer==null){
|
||||
buffer=_3;
|
||||
}
|
||||
if(_2["fr_pattern"]!=tosearch){
|
||||
if(tosearch!=""){
|
||||
clearDoc();
|
||||
}
|
||||
tosearch=_2["fr_pattern"];
|
||||
}
|
||||
if(matches==0){
|
||||
er=_2["fr_words"]?"/(?!<[^>]*)(\\b"+_2["fr_pattern"]+"\\b)(?![^<]*>)/g":"/(?!<[^>]*)("+_2["fr_pattern"]+")(?![^<]*>)/g";
|
||||
if(!_2["fr_matchcase"]){
|
||||
er+="i";
|
||||
}
|
||||
pater=eval(er);
|
||||
var _4="<span id=frmark>";
|
||||
var _5="</span>";
|
||||
var _6=_3.replace(pater,_4+"$1"+_5);
|
||||
editor.setHTML(_6);
|
||||
var _7=editor._doc.body.getElementsByTagName("span");
|
||||
for(var i=0;i<_7.length;i++){
|
||||
if(/^frmark/.test(_7[i].id)){
|
||||
fr_spans.push(_7[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
spanWalker(_2["fr_pattern"],_2["fr_replacement"],_2["fr_replaceall"]);
|
||||
}
|
||||
function spanWalker(_9,_a,_b){
|
||||
var _c=false;
|
||||
clearMarks();
|
||||
for(var i=matches;i<fr_spans.length;i++){
|
||||
var _e=fr_spans[i];
|
||||
_c=true;
|
||||
if(!(/[0-9]$/.test(_e.id))){
|
||||
matches++;
|
||||
disab("fr_clear",false);
|
||||
_e.id="frmark_"+matches;
|
||||
_e.style.color="white";
|
||||
_e.style.backgroundColor="highlight";
|
||||
_e.style.fontWeight="bold";
|
||||
_e.scrollIntoView(false);
|
||||
if(/\w/.test(_a)){
|
||||
if(_b||confirm(_lc("Substitute this occurrence?"))){
|
||||
_e.firstChild.replaceData(0,_e.firstChild.data.length,_a);
|
||||
replaces++;
|
||||
disab("fr_undo",false);
|
||||
}
|
||||
if(_b){
|
||||
clearMarks();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
var _f=(i>=fr_spans.length-1);
|
||||
if(_f||!_c){
|
||||
var _10=_lc("Done")+":\n\n";
|
||||
if(matches>0){
|
||||
if(matches==1){
|
||||
_10+=matches+" "+_lc("found item");
|
||||
}else{
|
||||
_10+=matches+" "+_lc("found items");
|
||||
}
|
||||
if(replaces>0){
|
||||
if(replaces==1){
|
||||
_10+=",\n"+replaces+" "+_lc("replaced item");
|
||||
}else{
|
||||
_10+=",\n"+replaces+" "+_lc("replaced items");
|
||||
}
|
||||
}
|
||||
hiliteAll();
|
||||
disab("fr_hiliteall",false);
|
||||
}else{
|
||||
_10+="\""+_9+"\" "+_lc("not found");
|
||||
}
|
||||
alert(_10+".");
|
||||
}
|
||||
}
|
||||
function clearDoc(){
|
||||
var doc=editor._doc.body.innerHTML;
|
||||
var er=/(<span\s+[^>]*id=.?frmark[^>]*>)([^<>]*)(<\/span>)/gi;
|
||||
editor._doc.body.innerHTML=doc.replace(er,"$2");
|
||||
pater=null;
|
||||
tosearch="";
|
||||
fr_spans=new Array();
|
||||
matches=0;
|
||||
replaces=0;
|
||||
disab("fr_hiliteall,fr_clear",true);
|
||||
}
|
||||
function clearMarks(){
|
||||
var _13=editor._doc.body.getElementsByTagName("span");
|
||||
for(var i=0;i<_13.length;i++){
|
||||
var elm=_13[i];
|
||||
if(/^frmark/.test(elm.id)){
|
||||
var _16=editor._doc.getElementById(elm.id).style;
|
||||
_16.backgroundColor="";
|
||||
_16.color="";
|
||||
_16.fontWeight="";
|
||||
}
|
||||
}
|
||||
}
|
||||
function hiliteAll(){
|
||||
var _17=editor._doc.body.getElementsByTagName("span");
|
||||
for(var i=0;i<_17.length;i++){
|
||||
var elm=_17[i];
|
||||
if(/^frmark/.test(elm.id)){
|
||||
var _1a=editor._doc.getElementById(elm.id).style;
|
||||
_1a.backgroundColor="highlight";
|
||||
_1a.color="white";
|
||||
_1a.fontWeight="bold";
|
||||
}
|
||||
}
|
||||
}
|
||||
function resetContents(){
|
||||
if(buffer==null){
|
||||
return;
|
||||
}
|
||||
var _1b=editor._doc.body.innerHTML;
|
||||
editor._doc.body.innerHTML=buffer;
|
||||
buffer=_1b;
|
||||
}
|
||||
function disab(_1c,_1d){
|
||||
var _1e=_1c.split(/[,; ]+/);
|
||||
for(var i=0;i<_1e.length;i++){
|
||||
document.getElementById(_1e[i]).disabled=_1d;
|
||||
}
|
||||
}
|
||||
|
||||
var FindReplace = window.opener.FindReplace;
|
||||
var editor = FindReplace.editor;
|
||||
var is_mo = window.opener.HTMLArea.is_gecko;
|
||||
var tosearch = '';
|
||||
var pater = null;
|
||||
var buffer = null;
|
||||
var matches = 0;
|
||||
var replaces = 0;
|
||||
var fr_spans = new Array();
|
||||
function _lc(string) {
|
||||
return(window.opener.HTMLArea._lc(string, 'FindReplace'));
|
||||
}
|
||||
function execSearch(params) {
|
||||
var ihtml = editor._doc.body.innerHTML;
|
||||
if(buffer == null)
|
||||
buffer = ihtml;
|
||||
|
||||
if(params['fr_pattern'] != tosearch) {
|
||||
if(tosearch != '')
|
||||
clearDoc();
|
||||
tosearch = params['fr_pattern'];
|
||||
}
|
||||
|
||||
if(matches == 0) {
|
||||
er = params['fr_words'] ? "/(?!<[^>]*)(\\b"+params['fr_pattern']+"\\b)(?![^<]*>)/g" :
|
||||
"/(?!<[^>]*)("+params['fr_pattern']+")(?![^<]*>)/g";
|
||||
if(!params['fr_matchcase'])
|
||||
er += "i";
|
||||
|
||||
pater = eval(er);
|
||||
|
||||
var tago = '<span id=frmark>';
|
||||
var tagc = '</span>';
|
||||
var newHtml = ihtml.replace(pater,tago+"$1"+tagc);
|
||||
|
||||
editor.setHTML(newHtml);
|
||||
|
||||
var getallspans = editor._doc.body.getElementsByTagName("span");
|
||||
for (var i = 0; i < getallspans.length; i++)
|
||||
if(/^frmark/.test(getallspans[i].id))
|
||||
fr_spans.push(getallspans[i]);
|
||||
}
|
||||
|
||||
spanWalker(params['fr_pattern'],params['fr_replacement'],params['fr_replaceall']);
|
||||
}
|
||||
|
||||
function spanWalker(pattern,replacement,replaceall) {
|
||||
var foundtrue = false;
|
||||
clearMarks();
|
||||
|
||||
for (var i = matches; i < fr_spans.length; i++) {
|
||||
var elm = fr_spans[i];
|
||||
foundtrue = true;
|
||||
if(!(/[0-9]$/.test(elm.id))) {
|
||||
matches++;
|
||||
disab('fr_clear',false);
|
||||
elm.id = 'frmark_'+matches;
|
||||
elm.style.color = 'white';
|
||||
elm.style.backgroundColor = 'highlight';
|
||||
elm.style.fontWeight = 'bold';
|
||||
elm.scrollIntoView(false);
|
||||
if(/\w/.test(replacement)) {
|
||||
if(replaceall || confirm(_lc("Substitute this occurrence?"))) {
|
||||
elm.firstChild.replaceData(0,elm.firstChild.data.length,replacement);
|
||||
replaces++;
|
||||
disab('fr_undo',false);
|
||||
}
|
||||
if(replaceall) {
|
||||
clearMarks();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
var last = (i >= fr_spans.length - 1);
|
||||
if(last || !foundtrue) { // EOF
|
||||
var message = _lc("Done")+':\n\n';
|
||||
if(matches > 0) {
|
||||
if(matches == 1) message += matches+' '+_lc("found item");
|
||||
else message += matches+' '+_lc("found items");
|
||||
if(replaces > 0) {
|
||||
if(replaces == 1) message += ',\n'+replaces+' '+_lc("replaced item");
|
||||
else message += ',\n'+replaces+' '+_lc("replaced items");
|
||||
}
|
||||
hiliteAll();
|
||||
disab('fr_hiliteall',false);
|
||||
} else { message += '"'+pattern+'" '+_lc("not found"); }
|
||||
alert(message+'.');
|
||||
}
|
||||
}
|
||||
|
||||
function clearDoc() {
|
||||
var doc = editor._doc.body.innerHTML;
|
||||
var er = /(<span\s+[^>]*id=.?frmark[^>]*>)([^<>]*)(<\/span>)/gi;
|
||||
editor._doc.body.innerHTML = doc.replace(er,"$2");
|
||||
pater = null;
|
||||
tosearch = '';
|
||||
fr_spans = new Array();
|
||||
matches = 0;
|
||||
replaces = 0;
|
||||
disab("fr_hiliteall,fr_clear",true);
|
||||
}
|
||||
|
||||
function clearMarks() {
|
||||
var getall = editor._doc.body.getElementsByTagName("span");
|
||||
for (var i = 0; i < getall.length; i++) {
|
||||
var elm = getall[i];
|
||||
if(/^frmark/.test(elm.id)) {
|
||||
var objStyle = editor._doc.getElementById(elm.id).style;
|
||||
objStyle.backgroundColor = "";
|
||||
objStyle.color = "";
|
||||
objStyle.fontWeight = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function hiliteAll() {
|
||||
var getall = editor._doc.body.getElementsByTagName("span");
|
||||
for (var i = 0; i < getall.length; i++) {
|
||||
var elm = getall[i];
|
||||
if(/^frmark/.test(elm.id)) {
|
||||
var objStyle = editor._doc.getElementById(elm.id).style;
|
||||
objStyle.backgroundColor = "highlight";
|
||||
objStyle.color = "white";
|
||||
objStyle.fontWeight = "bold";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function resetContents() {
|
||||
if(buffer == null) return;
|
||||
var transp = editor._doc.body.innerHTML;
|
||||
editor._doc.body.innerHTML = buffer;
|
||||
buffer = transp;
|
||||
}
|
||||
|
||||
function disab(elms,toset) {
|
||||
var names = elms.split(/[,; ]+/);
|
||||
for(var i = 0; i < names.length; i++)
|
||||
document.getElementById(names[i]).disabled = toset;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 98 B |
26
xinha/plugins/FindReplace/lang/ja.js
Normal file
26
xinha/plugins/FindReplace/lang/ja.js
Normal file
@@ -0,0 +1,26 @@
|
||||
// I18N constants
|
||||
// LANG: "ja", ENCODING: UTF-8
|
||||
{
|
||||
// messages
|
||||
"Substitute this occurrence?": "置換しますか?",
|
||||
"Enter the text you want to find": "検索したいテキストを入力します",
|
||||
"Inform a replacement word": "単語の置換を知らせる",
|
||||
"found items": "件が検索されました",
|
||||
"replaced items": "件が置換されました",
|
||||
"found item": "件が検索されました",
|
||||
"replaced item": "件が置換されました",
|
||||
"not found": "はありません",
|
||||
// window
|
||||
"Find and Replace": "検索/置換",
|
||||
"Search for:": "検索:",
|
||||
"Replace with:": "置換:",
|
||||
"Options": "設定",
|
||||
"Whole words only": "完全一致のみ",
|
||||
"Case sensitive search": "大文字/小文字区別",
|
||||
"Substitute all occurrences": "すべて置換",
|
||||
"Clear": "通常表示",
|
||||
"Highlight": "強調表示",
|
||||
"Undo": "元に戻す",
|
||||
"Next": "次を検索",
|
||||
"Done": "終了"
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
// I18N constants
|
||||
// LANG: "no", ENCODING: UTF-8
|
||||
// LANG: "nb", ENCODING: UTF-8
|
||||
// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
|
||||
{
|
||||
// messages
|
||||
28
xinha/plugins/FindReplace/lang/ru.js
Normal file
28
xinha/plugins/FindReplace/lang/ru.js
Normal file
@@ -0,0 +1,28 @@
|
||||
// I18N constants
|
||||
// LANG: "ru", ENCODING: UTF-8
|
||||
// Author: Andrei Blagorazumov, a@fnr.ru
|
||||
|
||||
{
|
||||
// messages
|
||||
"Substitute this occurrence?": "Заменить это вхождение?",
|
||||
"Enter the text you want to find": "Введите текст, который вы хотите найти",
|
||||
"Inform a replacement word": "Показать замещающее слово",
|
||||
"found items": "найти",
|
||||
"replaced items": "замененные",
|
||||
"found item": "найти",
|
||||
"replaced item": "замененная",
|
||||
"not found": "не найдено",
|
||||
// window
|
||||
"Find and Replace": "Найти и заменить",
|
||||
"Search for:": "Найти",
|
||||
"Replace with:": "Заменить с",
|
||||
"Options": "Опции",
|
||||
"Whole words only": "Только слова целиком",
|
||||
"Case sensitive search": "Поиск с учетом регистра",
|
||||
"Substitute all occurrences": "Заменить все вхождения",
|
||||
"Clear": "Очистить",
|
||||
"Highlight": "Выделить",
|
||||
"Undo": "Отменить",
|
||||
"Next": "След.",
|
||||
"Done": "OK"
|
||||
};
|
||||
27
xinha/plugins/FindReplace/lang/sv.js
Normal file
27
xinha/plugins/FindReplace/lang/sv.js
Normal file
@@ -0,0 +1,27 @@
|
||||
// I18N constants
|
||||
// LANG: "sv" (Swedish), ENCODING: UTF-8
|
||||
// translated: Erik Dalén, <dalen@jpl.se>
|
||||
{
|
||||
// messages
|
||||
"Substitute this occurrence?": "Ersätt denna?",
|
||||
"Enter the text you want to find": "Skriv in text du vill söka",
|
||||
"Inform a replacement word": "Skriv in ett ersättningsord",
|
||||
"found items": "förekomster funna i sökningen",
|
||||
"replaced items": "förekomster erstatta",
|
||||
"found item": "Träff",
|
||||
"replaced item": "erstatt träff",
|
||||
"not found": "inte funnet",
|
||||
// window
|
||||
"Find and Replace": "Sök och ersätt",
|
||||
"Search for:": "Sök efter:",
|
||||
"Replace with:": "Ersätt med:",
|
||||
"Options": "Välj",
|
||||
"Whole words only": "Bara hela ord",
|
||||
"Case sensitive search": "Skilj mellan stora och små bokstäver",
|
||||
"Substitute all occurrences": "Erstatt alla träffar",
|
||||
"Clear": "Töm",
|
||||
"Highlight": "Markera",
|
||||
"Undo": "Tillbaka",
|
||||
"Next": "Nästa",
|
||||
"Done": "Färdig"
|
||||
};
|
||||
@@ -102,8 +102,8 @@ letter-spacing: 2px;
|
||||
</style>
|
||||
</head>
|
||||
<body class="dialog" onload="Init()">
|
||||
<form action="" method="get">
|
||||
<div class="title" style="width: 310px">Find and Replace</div>
|
||||
<div class="title">Find and Replace</div>
|
||||
<form action="" method="get">
|
||||
<table border="0" style="width: 100%; padding: 2px;"><!---->
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user