javascript:einfügenTag funktioniert nicht mit Firefox
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
anpassen
code
ende
extra
fehler
funktion
gecko
input
machen
paar
pos
posten
problem
rang
sagen
start
tag
text
tip
unterstrichen
-
ich mal wieder ....
die Anpassung auf Firefox neigt sich langsam dem tag/ende">Ende zu, aber ich finden doch immer noch ein paar Anpassungsfehler.
Folgendes Problem:
Ich gebe in einem Formularfeld einen Textinhalt ein und habe rechts, durch verlinkte Optionen, die Möglichkeit den Text zu fetten, zentrieren, Farbe zu ändern etc. WIe immer im IE ausführbar nur nicht in FF.
$form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','u',true);\"><u>UNTERSTRICHEN</u></a><br>";
$form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','i',true);\"><i>KURSIV</i></a><br>";
$form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','center',true);\">Zentrieren</a><br>";
$form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','font size=+2',true);\"><font size=+2>SCHRIFTGROESSE +2</font></a><br>";;
VIelen dank schonmal für des Rätsels Lösung :) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Erstmal fernab vom Problem: verwende für Code bitte auch den dafür vorgesehenen Tag. nicht Quote, sondern Code.
die Links sind schön und gut, allerdings sagen sie wenig(garnix) darüber aus, was die Funktion einfuegenTag nun macht.
Wäre schön, wenn du deren Code mal posten könntest.
Im übrigen bietet Firefox eine Fehlerconsole (Extras -> Fehlerkonsole, oder Strg+Umschalt+J) in der Fehler bei der Scriptausführung aufgezeichnet werden. Schau doch einfach mal dort rein, eventuell findest du den Fehler dort genauer Beschreiben. Falls du mit der Fehlermeldung dort nix anfangen kannst, poste sie einfach hier.
mfg
edit: peinlicher Rechtschreibfehler entfernt :|
Beitrag zuletzt geändert: 20.7.2010 18:26:00 von syberpsace -
$form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','u',true);\"><u>UNTERSTRICHEN</u></a><br>"; $form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','i',true);\"><i>KURSIV</i></a><br>"; $form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','center',true);\">Zentrieren</a><br>"; $form_neuheiten.= "<a href=\"javascript:einfuegenTag('edit_inhalt','font size=+2',true);\"><font size=+2>SCHRIFTGROESSE +2</font></a><br>";
das mit dem quote und dem code ist in der eile schief gelaufen ...
ist mein text so unverständlich? ^^
er setzt z.B. bei "Unterstrichen" die tags <u></u>, dass gleiche gilt für fett, kursiv etc.
ich markiere einfach ein Textinhalt und davor und danach werden dann diese tags gesetzt. Dachte, dass man das doch dem code/quote entnehmen kann ;)
Mit der Fehlerconsole werde ich einmal testen. Danke erstmal für den Tipp.
Edith sagt:
Fehlerconsole hat dazu nix ausgespuckt
Beitrag zuletzt geändert: 20.7.2010 16:56:28 von sjcbuch -
Wie syberpsace bereits sagte:
syberpsace schrieb:
die Links sind schön und gut, allerdings sagen sie wenig(garnix) darüber aus, was die Funktion einguegenTag nun macht.
Wäre schön, wenn du deren Code mal posten könntest.
Was der Code bewirken soll ist schon klar aber ohne den dazugehörigen (javascript-) Code kann Dir hier keiner helfen.
Beitrag zuletzt geändert: 20.7.2010 18:20:27 von simuliertes -
jetzt hats klick gemacht, dachte nur im Befehl selbst ist was falsch :)
hier die Funktion für den EinfügenTag:
function markiere(txtObj) { if (txtObj.createTextRange) { txtObj.caretPos = document.selection.createRange().duplicate(); isSelected = true; } } function einfuegenTag (txtName, tag, enclose) { var closeTag = tag; if ( enclose ) { var attribSplit = tag.indexOf ( ' ' ); if ( tag.indexOf ( ' ' ) > -1 ) closeTag = tag.substring ( 0, attribSplit ); } if ( isSelected ) { var txtObj = eval ( "document.forms['edit_form']." + txtName ); if (txtObj.createTextRange && txtObj.caretPos) { var caretPos = txtObj.caretPos; caretPos.text = ( ( enclose ) ? "<"+tag+">"+caretPos.text+"</"+closeTag+">" : "<"+tag+">"+caretPos.text ); markiere( txtObj ); if ( txtObj.caretPos.text=='') { isSelected=false; txtObj.focus(); } } } else { // placeholder for loss of focus handler } aktualisiereHTML(); }
problem gelöst mit folgender funktion
function einfuegenTag(aTag, eTag) { var input = document.forms['edit_form'].elements['edit_inhalt']; input.focus(); /* für Internet Explorer */ if(typeof document.selection != 'undefined') { /* Einfügen des Formatierungscodes */ var range = document.selection.createRange(); var insText = range.text; 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(); } /* für neuere auf Gecko basierende Browser */ else if(typeof input.selectionStart != 'undefined') { /* Einfügen des Formatierungscodes */ var start = input.selectionStart; var end = input.selectionEnd; var insText = input.value.substring(start, end); input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end); /* Anpassen der Cursorposition */ var pos; if (insText.length == 0) { pos = start + aTag.length; } else { pos = start + aTag.length + insText.length + eTag.length; } input.selectionStart = pos; input.selectionEnd = pos; } /* für die übrigen Browser */ else { /* Abfrage der Einfügeposition */ var pos; var re = new RegExp('^[0-9]{0,3}$'); while(!re.test(pos)) { pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0"); } if(pos > input.value.length) { pos = input.value.length; } /* Einfügen des Formatierungscodes */ var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:"); input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos); } aktualisiereHTML(); }
Beitrag zuletzt geändert: 21.7.2010 19:04:28 von sjcbuch -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage