BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- Javascript check (http://www.black-board.net/thread.php?threadid=22978)


Geschrieben von Flux am 04.08.2007 um 09:14:

  Javascript check

Moin,

Ich möchte auf einer Seite checken ob der User Javascript aktiviert hat und wissen welchen Browser er benutzt.

Wenn Javascript deaktiviert ist, möchte ich eine Fehlermeldung ausgeben können.

Kennt jemand eine Möglichkeit dies zu bewerkstelligen?



Geschrieben von Misel am 04.08.2007 um 10:05:

 

ich mach das immer so:


code:
1:
2:
3:
4:
5:
6:
<p id="notice">If you can read this please turn on Javascript and reload the page.</p>
<script type="text/javascript">
  document.getElementById("notice").firstChild.nodeValue ="";
</script>




Geschrieben von LX am 04.08.2007 um 14:27:

Achtung

Für solche Fälle gibt's auch das NOSCRIPT-Tag.

Die Browserversion kannst du aus navigator.userAgent auslesen und entsprechend aufbereiten.



Geschrieben von Flux am 07.08.2007 um 11:34:

 

danke.

hab nun nochn ähnliches ding, hab dazu jetzt nicht extra n neuen thread erfasst:

Durch klick kann man Daten in einer db löschen. Vorher möchte ich jedoch noch eine Javascript abfrage "Wirklich löschen --> ja/nein".

Das habe ich soweit:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<script language=javascript>
<!--
function wirklich(){
if (confirm('Wirklich löschen?')) {
}
}
//-->
</script>
...
...
...
<a href="loeschen.php?action=loeschen" onclick="wirklich()">Löschen</a>



egal ob man nun auf ok/abbrechen klickt. das formular wird ausgeführt.
da ich aber ein absoluter javascript noob bin, weiss ich nicht, wie ich machen kann, dass das formular nur per klick auf "ok" ausgeführt wird. irgendwas mit return-false oder? habe einiges probiert aber eben ^^

p.s. kann man den Wert in der Abfrage von Ok/Abbrechen irgendwie auf z.B. Ja/Nein ändern?

mfg



Geschrieben von Misel am 07.08.2007 um 13:36:

 

Änderungen in der Datenbank übergibt man IMMER via POST über ein Formular.

Wenn jetzt der Googlebot über die Seite rennt, ignoriert er das JavaScript komplett und folgt fleißig allen Links. ie. Die Daten sind alle gelöscht!!!

Deshalb nimm dazu ein Formular! Dort hast Du dazu noch die Möglichkeit die Formulareingaben vor dem Abschicken zu überprüfen. Genau so, wie Du es vorhast.

Grüße
Misel



Geschrieben von Flux am 07.08.2007 um 13:53:

 

ah klar, der böse google bot smile ok werds mir merken.

wie ich die formulareingaben prüfe ist mir klar.
ich möchte jedoch, dass das formular nur abgeschickt wird, wenn der user bei der bestätigung auf "ok" klickt. bei "abbrechen" soll das formular nicht ausgeführt werden.

Edit: habs geschafft:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
<script type="text/javascript">
<!--
<!-- Felder Check -->
function check(){
	pruef = confirm("Möchten Sie wirklich löschen?");
	if(pruef != true)
	{
	return false;
	}
}
//-->
</script>


im form tag muss dann am ende "onsubmit="return check()" rein.



Geschrieben von LX am 07.08.2007 um 17:48:

Achtung

Für das erwähnte Sicherheitsfragen-Problem nochmal die Lösung:

code:
1:
<a href="blah.php?id=sowieso" onclick="return confirm('echt jetz?');">clicky</a>


Entscheidend ist das "return" im onclick-Eventhandler. Wenn der Ausdruck dahinter false zurückggibt wird, dann wird das Ziel im href-Attribut nicht aufgerufen. Kommt hingegen true zurück, dann wird der Link ganz normal bestätigt.



Geschrieben von Flux am 07.08.2007 um 17:53:

 

deutlich einfacher/eleganter so. danke!


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH