git-svn-id: file:///svn/phpbb/trunk@7064 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Dominik Dröscher 2007-02-25 13:44:25 +00:00
parent 23577db488
commit fca8176e5b

View file

@ -32,11 +32,21 @@ function helpline(help)
*/ */
function initInsertions() function initInsertions()
{ {
var textarea = document.forms[form_name].elements[text_name]; var doc;
textarea.focus(); if(document.forms[form_name])
{
doc = document;
}
else
{
doc = opener.document;
}
var textarea = doc.forms[form_name].elements[text_name];
if (is_ie && typeof(baseHeight) != 'number') if (is_ie && typeof(baseHeight) != 'number')
{ {
baseHeight = document.selection.createRange().duplicate().boundingHeight; textarea.focus();
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
document.body.focus();
} }
} }
@ -48,7 +58,9 @@ function bbstyle(bbnumber)
if (bbnumber != -1) if (bbnumber != -1)
{ {
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]); bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
} else { }
else
{
insert_text('[*]'); insert_text('[*]');
document.forms[form_name].elements[text_name].focus(); document.forms[form_name].elements[text_name].focus();
} }
@ -62,6 +74,7 @@ function bbfontstyle(bbopen, bbclose)
theSelection = false; theSelection = false;
var textarea = document.forms[form_name].elements[text_name]; var textarea = document.forms[form_name].elements[text_name];
textarea.focus(); textarea.focus();
if ((clientVer >= 4) && is_ie && is_win) if ((clientVer >= 4) && is_ie && is_win)
@ -87,7 +100,8 @@ function bbfontstyle(bbopen, bbclose)
} }
//The new position for the cursor after adding the bbcode //The new position for the cursor after adding the bbcode
var new_pos = getCaretPosition(textarea).start + bbopen.length; var caret_pos = getCaretPosition(textarea).start;
var new_pos = caret_pos + bbopen.length;
// Open tag // Open tag
insert_text(bbopen + bbclose); insert_text(bbopen + bbclose);
@ -102,13 +116,14 @@ function bbfontstyle(bbopen, bbclose)
// IE // IE
else if (document.selection) else if (document.selection)
{ {
var range = textarea.createTextRange(); var range = textarea.createTextRange();
range.move("character", new_pos); range.move("character", new_pos);
range.select(); range.select();
storeCaret(document.forms[form_name].elements[text_name]); storeCaret(textarea);
} }
document.forms[form_name].elements[text_name].focus(); textarea.focus();
return; return;
} }
@ -122,7 +137,8 @@ function insert_text(text, spaces, popup)
if (!popup) if (!popup)
{ {
textarea = document.forms[form_name].elements[text_name]; textarea = document.forms[form_name].elements[text_name];
} else }
else
{ {
textarea = opener.document.forms[form_name].elements[text_name]; textarea = opener.document.forms[form_name].elements[text_name];
} }
@ -152,12 +168,15 @@ function insert_text(text, spaces, popup)
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
} }
else else
{ {
textarea.value = textarea.value + text; textarea.value = textarea.value + text;
} }
document.forms[form_name].elements[text_name].focus(); if (!popup)
{
textarea.focus();
}
} }
/** /**
@ -352,6 +371,7 @@ function getCaretPosition(txtarea)
// dirty and slow IE way // dirty and slow IE way
else if(document.selection) else if(document.selection)
{ {
// get current selection // get current selection
var range = document.selection.createRange(); var range = document.selection.createRange();