URL: https://www.overclockers.at/coding-stuff/javascript_problem_135338/page_1 - zur Vollversion wechseln!
Hi,
Ich bastele gerade an einer sehr abgespeckten Version von BBCode
Dabei bin ich auf folgendes Problem gestoßen:
Das folgende Script funktioniert recht gut, wenn es in einem Solo-Fenster aufgerufen wird...
Sobald es aber in einem Frame aufgerufen wird, wird zwar der Code im Formular eingefügt, jedoch immer an Position 1... der per Maus markierte Text wird hierbei ignoriert.
Ich denke, das es hier an der Adressierung liegt:
Zitatrange = document.selection.createRange();
Ich habe nur ein Frameset mit 2 Frames.Zitat
- range = window.selection.createRange();
- range = parent.frames[0].selection.createRange();
- range = parent.frames[1].selection.createRange();
- range = parent.NAMEdesFRAMES.selection.createRange();
ZitatJavascript
function insert(aTag, eTag) {
var input = document.forms['formular'].elements[field];
input.focus();
if(typeof window.selection != 'undefined') {
// Einfügen des Formatierungscodes
var range = document.selection.createRange();
var insText = range.text;
//alert(insText); //debug
range.text = aTag + insText + eTag;
// Anpassen der Cursorposition
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -eTag.length);
} else {
range.moveStart('character', aTag.length + insText.length + eTag.length);
}
range.select();
}...
entwickelst du unter IE?
wenn du vermutest, das problem liege in der falschen referenz zum frameset, dann wäre es nicht schnelcht, eine mini-frameset zum testen/debuggen mitzuliefern.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025