PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit JavaScript Funktion


Tommes
2005-09-27, 17:13:43
JS Problem behoben - thx @darph! Habe aber ein neues, siehe weiter unten.

darph
2005-09-27, 17:38:51
Ich hab's mit dem IE getestet: Funktioniert ohne Probleme.

Tommes
2005-09-27, 17:41:17
Huch wie kann das denn sein? In dem Forum wo ich das eingebaut habe, geht es nicht. Hier mal mein Funktionsaufruf:

<A onClick="javascript:seturl('URL')"> ... </a>

darph
2005-09-27, 17:46:49
Ehm... klar.

du lädst ja eine neue Seite, eine, die eben JavaScript ausfürt.

pack das nicht in einen Link (und wenn, dann gibt zumindest return false zurück).

mach das so:

<button onClick="seturl('url');" >URL</button>

Tommes
2005-09-27, 17:55:31
Das hat leider auch nichts gebracht. Nach der Eingabe des ersten Strings ist das Fesnter weg, der JS Fehler lautet "Das Objekt unterstützt diese Eigenschaft oder Methode nicht"

Edit: Komischerweise funzt aber das hier:

function setcode(code,prompttext) {
inserttext = prompt("Zu formatierenden Text eingeben:"+"\n",prompttext);
if ((inserttext != null) && (inserttext != ""))
document.posting.text.value += "["+code+"]"+inserttext+"[/"+code+"] ";
document.posting.text.focus();
}

darph
2005-09-27, 18:02:41
Ehm..

okay. Folgender Test:

Nimm das mal, kopier das in eine textdatei und teste das mal bitte.

<html>

<head>
<script>
function seturl(type) {
description = prompt("Beschreibungstext eingeben (optional)","");
if (type == "URL") {
text = "Link eingeben";
content = "http://";
}
else {
text = "eMail-Adresse eingeben";
content = "";
}
url = prompt(text,content);
if ((url != null) && (url != "")) {
if ((description != null) && (description != ""))
document.posting.text.value += "["+type+"="+url+"]" +description+ "[/"+type+"] ";
else
document.posting.text.value += "["+type+"]"+url+"[/"+type+"] ";
}
document.posting.text.focus();
}
</script>
</head>
<body>

</body>

<form name="posting">

<input type="text" name="text">
</form>

<p onClick="seturl('url')">asdf</p>

</html>

Tommes
2005-09-27, 18:05:04
Das ist ja ma super seltsam. Da geht es, aber im Forum nicht. Nur weil ich die Funktion auf ein a Element gelegt habe?

darph
2005-09-27, 18:21:28
Höchstwahrscheinlich.

Tommes
2005-09-27, 18:24:37
Hmm leider nein, hab es wie folgt abgeändert:

<p onClick="seturl('URL'); return false;" href="#" style="cursor: pointer"><img border="0" src="images/ie.gif" width="16" height="16" alt="Link einfügen">URL</p>

Aber der Fehler bleibt derselbe :(

Irgendwie muss es woanders dran liegen

darph
2005-09-27, 18:57:54
Lösch mal des href aus dem Absatz raus und lösch mal das return false.

Oder gib ma url damit man sich das in Gänze ansehen kann.

Tommes
2005-09-27, 19:06:15
Hab ich alles schon probiert, leider bringt das nicht den gewünschten Effekt :(

URL ist schweirig, in das Forum (ist von einem Schachportal) kommt man nur als angemeldeter Spieler.

Sephiroth
2005-09-28, 00:12:36
Ehm..

okay. Folgender Test:

Nimm das mal, kopier das in eine textdatei und teste das mal bitte.

<html>

<head>
<script>
function seturl(type) {
description = prompt("Beschreibungstext eingeben (optional)","");
if (type == "URL") {
text = "Link eingeben";
content = "http://";
}
else {
text = "eMail-Adresse eingeben";
content = "";
}
url = prompt(text,content);
if ((url != null) && (url != "")) {
if ((description != null) && (description != ""))
document.posting.text.value += "["+type+"="+url+"]" +description+ "[/"+type+"] ";
else
document.posting.text.value += "["+type+"]"+url+"[/"+type+"] ";
}
document.posting.text.focus();
}
</script>
</head>
<body>

</body>

<form name="posting">

<input type="text" name="text">
</form>

<p onClick="seturl('url')">asdf</p>

</html>

klappt bei mir (firefox) auch mit einem a Element.

Tommes, wenn du Firefox nutzt, dann mach doch mal die JavaScript Console auf und sieh nach was für/ob Fehlermeldungen drinne stehen. Es kann sein, daß du vorher die Option javascript.options.showInConsole über about:config auf true setzen mußt.

Tommes
2005-10-04, 00:54:01
Das Problem tritt aber im Internet Explorer auf, nicht im FireFox ;) Da geht alles wunderbar. Ich versteh das auch nicht, wenn ich die stand-alone Seite von darph nehme, klappt es im IE, bei "mir" im Forum leider nicht. Seltsam.

darph
2005-10-04, 13:41:23
Dann speicher einfach mal die HTML-Datei mit dem Form und gib sie uns zum runterladen. Irgendwas wird da ja falsch gemacht, das müßten wir uns mal ansehen.

Tommes
2005-10-04, 13:42:23
Alles klar mach ich gleich mal :)

Tommes
2005-10-04, 13:53:51
So habe es einfach mal als HTML Seite gespeichert:

http://www.zum.de/psm/schach/forum.html

Wie gesagt, der Fehler kommt nur im IE. Danke, dass ihr euch das mal anschaut!

darph
2005-10-04, 16:06:45
<script>
function seturl(type) {
var description = prompt("Beschreibungstext eingeben (optional)","");
if (type == "URL") {
var text = "Link eingeben";
var content = "http://";
}
else {
var text = "eMail-Adresse eingeben";
var content = "";
}
var url = prompt(text,content);
if ((url != null) && (url != "")) {
if ((description != null) && (description != ""))
document.posting.text.value += "["+type+"="+url+"]" +description+ "[/"+type+"] ";
else
document.posting.text.value += "["+type+"]"+url+"[/"+type+"] ";
}
document.posting.text.focus();
}
</script>


beachte die Verwendung des Schlüsselwörtchens var - damit ging es.

Ach ja: Es ist nicht nötig, beim onClick-Handler "javascript:" davor zu setzen. Das ist nur in der Adreßzeile des Browsers nötig.

Tommes
2005-10-04, 16:08:50
<script>
function seturl(type) {
var description = prompt("Beschreibungstext eingeben (optional)","");
if (type == "URL") {
var text = "Link eingeben";
var content = "http://";
}
else {
var text = "eMail-Adresse eingeben";
var content = "";
}
var url = prompt(text,content);
if ((url != null) && (url != "")) {
if ((description != null) && (description != ""))
document.posting.text.value += "["+type+"="+url+"]" +description+ "[/"+type+"] ";
else
document.posting.text.value += "["+type+"]"+url+"[/"+type+"] ";
}
document.posting.text.focus();
}
</script>


beachte die Verwendung des Schlüsselwörtchens var - damit ging es.

Ach ja: Es ist nicht nötig, beim onClick-Handler "javascript:" davor zu setzen. Das ist nur in der Adreßzeile des Browsers nötig.
Dankeschön!

Bin nicht so der JS-Crack und der Code ist schon ca. 3 Jahre alt, den habe ich nur auf die schnelle in das Forum eingebaut, weil ich zu faul war, etwas neus zu schreiben :)

Tommes
2005-10-04, 16:49:17
So aber es gibt ein neues, noch seltsameres Problem, welches dieses mal im FF und im IE auftritt - aber nur sporadisch. Guckt dazu bitte mal diesen Screen an:

http://img55.imageshack.us/img55/9091/screenschach92vz.th.jpg (http://img55.imageshack.us/my.php?image=screenschach92vz.jpg)

Ich denke, dass es irgendwie mit dem CSS Code zusammen hängt, theoretisch müsste der Fehler hin und wieder auch hier http://www.zum.de/psm/schach/forum.html auftreten (da kann man auch die CSS Dateien ansehen).

Vielleicht hat dafür ja auch jemand einen Tip? Wollte keinen neuen Thread aufmachen.