Javascript mittels PHP ermitteln
Sandmann
- php
Moin zusammen
ist es möglich mit PHP zu ermitteln ob JavaScript bei einem Browser aktiviert ist?
Dann könnte man dementsprechend 2 Verschiedene Versionen ausgeben. Eine mit und eine ohne JS
Thx for Help!
Hi,
ist es möglich mit PHP zu ermitteln ob JavaScript bei einem Browser aktiviert ist?
</archiv/2004/8/t87872/#m523005>
Cheatah
Hi,
ist es möglich mit PHP zu ermitteln ob JavaScript bei einem Browser aktiviert ist?
</archiv/2004/8/t87872/#m523005>
Cheatah
Öhm danke soweit aber... damit kann ich nichts anfangen. ich kann doch mit PHP abfragen welcher browser es ist, welche Ip und so weiter. Gibts da keine Variable die auhc besagt das JS an ist?
Andere Möglichkeit wäre vlt ein JS Script zu schreiben weil einen bestimmen String zurück liefert... kommt der String richtig zurück is JS an, wenn nichts zurück kommt oder was anderes ist es aus
kann man das so machen? ich habe leider nur keine ahnung von der Kommunikation zwischen PHP und JS
Hi,
Öhm danke soweit aber... damit kann ich nichts anfangen.
das entspricht dem Endergebnis.
ich kann doch mit PHP abfragen welcher browser es ist,
Kannst Du nicht.
welche Ip
Die vom Server benötigte Zieladresse ist aus welchem Grund eine clientseitige Begebenheit?
und so weiter.
Nein.
Gibts da keine Variable die auhc besagt das JS an ist?
Nein.
Andere Möglichkeit wäre vlt ein JS Script zu schreiben weil einen bestimmen String zurück liefert... kommt der String richtig zurück is JS an, wenn nichts zurück kommt oder was anderes ist es aus
Nein.
kann man das so machen?
Wenn Dir Fehlinterpretationen zusagen ...
ich habe leider nur keine ahnung von der Kommunikation zwischen PHP und JS
Es gibt keine.
Cheatah
Also ich kann naürlich mit PHP rausfinden welcher Browser es ist
echo $HTTP_USER_AGENT;
Soviel dazu :D
Und ich kann auch zwischen JavaScript und PHP kommunizieren. Das weiss ich inzwischen... nur eben nicht genau wie. müsste ich mir dann anlesen (aber das muss ich so oder so)
hat niemand ne "schnell" möglichkeit? das wäre doch echt mal was neues :D
Hi Sandmann,
echo $HTTP_USER_AGENT;
Dann bitte direkt
echo $_SERVER['HTTP_USER_AGENT'];
Aber bedenke, dass der User dadurch nicht zwingend den genannten Browser benutzen muss und
dass die Varialbe nicht zwingend etwas enthalten muss.
MfG, Dennis.
Ja ich weiss :-) das war auch mehr exemplarisch.
Ich hab ne neue Idee:
Hier mal so gaaanz Grob:
versteckte textbox in Seite. er bekommt das "normale" ohne JS.
das Textfeld wird mit von Client mit JS gefüllt (wenns an ist. wenn nicht bleibts leer und nix passiert)
wenn js 1. Füllt (sprich wenn es vorher leer war)-> sendes direkt an Server zurück
Wenn 2. mal füllen dann mach nix und lass die Seite stehen bis der User auf nen link klickt
Server: wenn Client zuückschickt und Feld voll -> JS Seite ausgeben
wenn nicht: weiter normales Normales
Der Wert in der textbos wird immer schön weiter übergeben damit er nicht verloren geht
Also versteh ihr was ich meine? ist allerdings sehr Grob ;D
Hi Sandmann,
Ich hab ne neue Idee:
Hier mal so gaaanz Grob:
ganz neu? das entspricht im Prizip genau dem, was man dir schon gesagt hat!
Ist aber abgesehen davon auch viel zu kompliziert.
Ich gebe dir mal einen anderen Denkansatz:
du bräuchtest folgendes JS:
self.location.href = "<?php echo basename($_SERVER['PHP_SELF']); ?>?js=1";
Und jetzt muss man das ganze zusammenbasteln:
<?php
if(isset($_GET['js']) AND $_GET['js'] == 1)
{
?>
Hier die Seite mit JS ausgeben
<?php
}
else
{
?>
Hier das Javascript ausgeben:
<script type="text/javascript">
<!--
self.location.href = "<?php echo basename($_SERVER['PHP_SELF']); ?>?js=1";
//-->
</script>
Und die Seite ohne Javascript
<?php
}
?>
Die Funktionsweise ist denkbar einfach: Wenn kein $_GET['js'] vorhanden ist, dann wird die Seite ohne Javascript ausgegeben, in der sich allerdings der Nachladebefehl befindet um die Seite mit Javascript zu laden.
Da der Nachladebefehl Javascript ist, sollte er nur ausgeführt werden, wenn JS aktiviert ist. Dazu wird einfach die aktuelle Seite neu geladen, mit der GET Variable js = 1.
Jetzt ist natürlich GET js vorhanden und = 1 und somit wird jetzt die Seite mit Javascript ausgegeben.
Ich möchte allerdings nochmal erwähnen, dass das ganze nicht so toll ist. Wenn du nur kleinigkeiten mit Javascript machst, hilft dir vielleicht auch schon <noscript>BlaBla</noscript> weiter.
Sollte das ganze nicht wie geplant funktionieren, noch mal Bescheid sagen (habs nicht getestet, ist ja auch nur ein Gedankenanstoß).
MfG, Dennis.
Hello Dennis,
du bräuchtest folgendes JS:
self.location.href = "<?php echo basename($_SERVER['PHP_SELF']); ?>?js=1";
Zwei Doofe, ein Gedanke! *gg*
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
du bräuchtest folgendes JS:
self.location.href = "<?php echo basename($_SERVER['PHP_SELF']); ?>?js=1";
Klasse.
Dann sieht der User eine tolle Seite - die gefällt ihm so gut, daß er die URL sofort aus der Adreßzeile kopiert und seinem Freund mitteilt (der kein Javascript im Browser erlaubt).
Der ruft dann ganz erfreut die Seite auf (natürlich mitsamt dem ?js=1 - denn so hat er den Link ja bekommen.
Der Server liefert daraufhin fröhlich die js-abhängige Variante aus und bei dem Freund funktioniert nichts.
Muß gar nicht mal zum Freund weitergereicht werden, es reicht ja, die URL zu speichern (bookmarks/favoriten) und irgendwann wieder aufzurufen. Schon wird ein falscher Status an den Server übermittelt.
cu,
Andreas
Hi MudGuard,
Dann sieht der User eine tolle Seite - die gefällt ihm so gut, daß er die URL sofort aus der Adreßzeile kopiert und seinem Freund mitteilt (der kein Javascript im Browser erlaubt).
Der ruft dann ganz erfreut die Seite auf (natürlich mitsamt dem ?js=1 - denn so hat er den Link ja bekommen.
Der Server liefert daraufhin fröhlich die js-abhängige Variante aus und bei dem Freund funktioniert nichts.
Hm, das stimmt, daran hab ich jetzt nicht gedacht, aber ich denke mal, dass ist auch nicht so wichtig und liegt weniger im Interesse des OP.
Allerdings mal grad noch kurz überlegen, wie man das Problem lösen könnte: Die einzige Möglichkeit (auf diese Art und Weise) sähe ich darin, noch einen Timestamp anzuhängen (geht das per JS? Sonst halt bei der Ausgabe mit PHP) und dann noch bei der Ausgabe überprüfen, ob der Timestamp älter als X Sekunden ist (sagen wir mal 600), wenn ja, trotzdem wieder Seite ohne JS ausgeben.
Natürlich deckt auch dies nicht alle Fälle ab, aber zumindest wäre es eine Erweiterung (bei der ich mich allerdings fragen würde, ob sich der Aufwand lohnt, da macht man lieber auf die JS Seite oben noch rein <noscript>Es wird Javascript benötigt!</noscript> Bzw. Link zu Ohne-JS-Seite).
MfG, Dennis.
Oder eben nicht per URL übergeben sondern per hidden textBox... das sollte doch auch irgendwie gehen oder?
Klasse.
Dann sieht der User eine tolle Seite - die gefällt ihm so gut, daß er die URL sofort aus der Adreßzeile kopiert und seinem Freund mitteilt (der kein Javascript im Browser erlaubt).
Der ruft dann ganz erfreut die Seite auf (natürlich mitsamt dem ?js=1 - denn so hat er den Link ja bekommen.
Der Server liefert daraufhin fröhlich die js-abhängige Variante aus und bei dem Freund funktioniert nichts.Muß gar nicht mal zum Freund weitergereicht werden, es reicht ja, die URL zu speichern (bookmarks/favoriten) und irgendwann wieder aufzurufen. Schon wird ein falscher Status an den Server übermittelt.
Ich seh ja inzwischen ein das es keine 100% Lösung gibt. Aber ich denke es merzt schonmal ein wenig aus. und wenn es nur bei 40 % der user geht, dann habe ich doch schonmal ein wenig was erreicht. Es gibt eben keine 100% Lösung... aber 1. habe ich was gelernt und 2. Kleinvieh macht auch mist :D
Danke nochmal an alle die geholfen haben (auch an die, die an die Sache nicht glauben :D)
Hi,
Ich seh ja inzwischen ein das es keine 100% Lösung gibt.
natürlich gibt's die. Alles, was JavaScript ist, muss halt optional sein - ganz einfach. Da braucht man keine unterschiedlichen Versionen, keine Prüfung, kein gar nichts. Wenn JavaScript hinreichend aktiviert ist, wird es benutzt, wenn nicht, dann nicht. Fertig.
Cheatah
Hello,
Ich seh ja inzwischen ein das es keine 100% Lösung gibt.
natürlich gibt's die. Alles, was JavaScript ist, muss halt optional sein - ganz einfach. Da braucht man keine unterschiedlichen Versionen, keine Prüfung, kein gar nichts. Wenn JavaScript hinreichend aktiviert ist, wird es benutzt, wenn nicht, dann nicht. Fertig.
Bisschen agressiv jetzt, oder?
Einfach keine anderen Meinungen mehr zuzulassen ('Fertig') ist doch hier nicht gerade höflich, oder? Immerhin versucht Sandmann, sich mit der Thematik in durchaus akzeptablem Diskussionsstil auseinanderzusetzen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
natürlich gibt's die. Alles, was JavaScript ist, muss halt optional sein - ganz einfach. Da braucht man keine unterschiedlichen Versionen, keine Prüfung, kein gar nichts. Wenn JavaScript hinreichend aktiviert ist, wird es benutzt, wenn nicht, dann nicht. Fertig.
Bisschen agressiv jetzt, oder?
schließe bitte nicht von Dir auf andere.
Einfach keine anderen Meinungen mehr zuzulassen ('Fertig')
Wie kommst Du darauf, durch den Hinweis auf ein erreichtes Ziel ließe ich keine anderen Meinungen mehr zu?
ist doch hier nicht gerade höflich, oder?
Ich sehe an meinen obigen Äußerungen nichts - und ich meine _gar_ nichts - was unhöflich wäre. Wenn Du sie _sachlich_ bewertest, anstatt Deine Emotionen hochkochen zu lassen, wirst Du das sicher auch feststellen.
Cheatah
Hello,
Klasse.
Dann sieht der User eine tolle Seite - die gefällt ihm so gut, daß er die URL sofort aus der Adreßzeile kopiert und seinem Freund mitteilt (der kein Javascript im Browser erlaubt).
Der ruft dann ganz erfreut die Seite auf (natürlich mitsamt dem ?js=1 - denn so hat er den Link ja bekommen.
Sag mal, wieviele Ironie-Zeichen habe ich eigentlich jetzt übersehen in Deinem Posting?
Ich habe auch noch Freunde, die gezwungen sind, mit Windows 3.11 (auf 4MB RAM und mit 33MHz) zu arbeiten. Der Browser ist wohl ein MSIE 3.1 oder ein vergleichbar alter Netscape. Viel mehr gab es damals ja nicht, als das Zeug noch "modern" war.
Was meinst Du, wie oft die mir mailen, weil sie hier im Forum was nicht lesen konnten oder eine Link nicht auswerten konnten. Speziell die Mandarin-Schriftzeichen von CK gingen gerade mal nicht.
Du solltest also, was das tägliche Leben betrifft, auf dem Teppich bleiben. Was die wissenschaftliche Betrachtung von Daten-Konsistenz und Wieder-Lesbarmachung betrifft, gebe ich Dir Recht. Aber da müssten wir eine Extrarunde einlegen - OK?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
DANKE!
Das ist wirklich gut. weil: es geht ;)
So hat man das Problem weniger das Leute nichts mehr sehen weil sie kein JS aktiviert haben ;)
Und im ernst: wer stellt zwischendurch sein JS aus?
Thx nochmal!
MfG
Sandmann
Hi,
Das ist wirklich gut. weil: es geht ;)
*seufz* nein, tut es nicht.
Und im ernst: wer stellt zwischendurch sein JS aus?
Wer tut es nicht? Und: Zwischen _was_?
Cheatah
Hi,
Das ist wirklich gut. weil: es geht ;)
*seufz* nein, tut es nicht.
Also bei mir, wenn ich JS anhabe kommt sagt er mir das es "an" ist.
Wenn es nicht an ist dann kommt das es "aus ist"
http://www.dm-treff.de/2_test.php
Aber das ist noch experimentell also nicht über den Wirrwarr auf der seite meckern ;)
Hi,
Das ist wirklich gut. weil: es geht ;)
*seufz* nein, tut es nicht.
Also bei mir, wenn ich JS anhabe kommt sagt er mir das es "an" ist.
Wenn es nicht an ist dann kommt das es "aus ist"
und was hat "es geht bei mir" mit "es geht" zu tun?
Cheatah
Hello,
Fakt ist, beim neutralen Erstrequest kannst Du nichts ermitteln.
Nun nehmen wir mal an, dass der User normal vertanlagt ist und nicht paranoid oder so, dann ändert er nicht mitten in der Session (hier als Bezeichnung für einen fortgesetzten Seitenbesuch) die Browsereinstellungen.
Wenn Du also als erste Antwort eine normale HTML-Seite schickst, die ganz oben
<script type="text/javascript">window.location.href=window.location.href+'?js=1';</script>
enthält, dann brauchst Du in dem Affenscript nur den Parameter $_GET['js'] abzufragen.
Das ist ein grober Ansatz für Dich. Selbstverständlich gelten die Bedenken der Anderen, aber wie hoch sie für Deinen Einsatzzweck zu bewerten sind, solltest Du selbst entscheiden. Ich halte sie für vernachlässigbar.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom,
Schon lustig, dass wir beide fast gleichzeitig so ziemlich das gleiche schreiben und sogar die GET Variable noch identisch benannt haben ;-))
MfG, Dennis.
Hello,
Schon lustig, dass wir beide fast gleichzeitig so ziemlich das gleiche schreiben und sogar die GET Variable noch identisch benannt haben ;-))
Ja, das dachte ich auch. Aber wir haben auch schon eine Menge Stuff ausgetauscht und da übernimmt man dann irgendwie zwangsläufig die praktischen Angewohnheiten des Anderen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom,
Ja, das dachte ich auch. Aber wir haben auch schon eine Menge Stuff ausgetauscht und da übernimmt man dann irgendwie zwangsläufig die praktischen Angewohnheiten des Anderen.
So habe ich mir ja auch von dir angewöhnt, in PHP (oder JS oder sonst was) immer die geschweiften Klammern {, } in eine neue Zeile zu setzen, mittlerweile finde ich auch, dass das wesentlich praktischer/übersichtlicher ist.
MfG, Dennis.
Hello,
So habe ich mir ja auch von dir angewöhnt, in PHP (oder JS oder sonst was) immer die geschweiften Klammern {, } in eine neue Zeile zu setzen, mittlerweile finde ich auch, dass das wesentlich praktischer/übersichtlicher ist.
Habe ich sofort gesehen, weil Dein Code auf den ersten Blick lesbar war.
Ich habe da gerade ein Dankschreiben von einer Software-Entwicklungsfirma für diesen eigentlich popligen Verbesserungsvorschlag erhalten. Die haben die Formvorschrift betriebsintern Ende 2001 umgestellt. Das hat eine Weile gedauert. Aber bereits 2003 rechnen sie dieser einfachen Maßnahme eine Ersparnis von ca. 18% (vermindertze Fehlerquote, gesparte Einlesezeit in fremde Codes) und in diesem Jahr vermutlich über 22% gegenüber 2000/2001 zu.
Gibt zwar leider keinen Zusatzscheck, da ich die Beratung seinerzeit ja bezahlt bekommen ahbe, aber sie wollen nun, mach fast 3 Jahren Pause (da habe sie echt sparen müssen), wieder einige Seminare mit mir machen. Schaun wir mal, ob die Konjunktur tatsächlich anzieht.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Nun nehmen wir mal an, dass der User normal vertanlagt ist und nicht paranoid oder so, dann ändert er nicht mitten in der Session (hier als Bezeichnung für einen fortgesetzten Seitenbesuch) die Browsereinstellungen.
diese Schlussfolgerung basiert vollständig auf Hoffnung - das eine hat mit dem anderen nicht das Geringste zu tun.
Cheatah
Hello,
Nun nehmen wir mal an, dass der User normal vertanlagt ist und nicht paranoid oder so, dann ändert er nicht mitten in der Session (hier als Bezeichnung für einen fortgesetzten Seitenbesuch) die Browsereinstellungen.
diese Schlussfolgerung basiert vollständig auf Hoffnung - das eine hat mit dem anderen nicht das Geringste zu tun.
Dass er nicht stirbt während der Sitzung, auch.
Und ich behaupte jetzt einfach mal, dass es weniger User gibt, die den Content einer Seite sehen WOLLEN und JavaScript oder Cookies zwischen den Requests abschalten, als es User gibt, die währenddessen den Exitus erleiden.
Diejenigen, die dauernd an ihrmen Browser herumfummeln und dies sogar mitten während des Besuches einer seriös gemachten Seite tun, sind ohnehin nicht ernst zu nehmen.
Hier geht es mMn also um die Abwägung von Gütern, nicht um das theoretisch technisch Mögliche.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
diese Schlussfolgerung basiert vollständig auf Hoffnung - das eine hat mit dem anderen nicht das Geringste zu tun.
Dass er nicht stirbt während der Sitzung, auch.
allerdings steckt dahinter eine gewisse Wahrscheinlichkeit - erfahrungsgemäß stirbt ein Mensch nicht sehr häufig, und das auch erst nach einer verhältnismäßig langen Zeit. Zusätzlich ist der Zeitpunkt des Sterbens oft durch vorherige Umstände begleitet, die die Wahrscheinlichkeit des Surfens reduzieren.
Bitte argumentieren, nicht trollen.
Und ich behaupte jetzt einfach mal, dass es weniger User gibt, die den Content einer Seite sehen WOLLEN und JavaScript oder Cookies zwischen den Requests abschalten, als es User gibt, die währenddessen den Exitus erleiden.
Diese Behauptung steht auf äußerst wackeligen Beinen, sofern Du damit nicht ausdrücken möchtest, dass eh niemand wirkliche eine Seite sehen will.
Diejenigen, die dauernd an ihrmen Browser herumfummeln und dies sogar mitten während des Besuches einer seriös gemachten Seite tun, sind ohnehin nicht ernst zu nehmen.
Hier ist der Punkt erreicht, wo man bei Deinen Äußerungen nur noch von wirrem Zeug reden kann. Das Ausschalten von JavaScript ist oft durch einen einzigen Mausklick durchführbar, und der "es nervt mal wieder"-Punkt ist je nach Site sehr schnell erreicht. Wer jemanden deswegen als nicht ernstzunehmen definiert, ist schlicht und ergreifend dumm.
Hier geht es mMn also um die Abwägung von Gütern, nicht um das theoretisch technisch Mögliche.
Das theoretisch Mögliche ist hier in der Praxis gang und gäbe. Unbeachtet hast Du ferner weiterhin, dass "JavaScript aktiviert" auch zu einem definierten Zeitpunkt kein Boole'scher Wert ist.
Cheatah
Hello,
Hier ist der Punkt erreicht, wo man bei Deinen Äußerungen nur noch von wirrem Zeug reden kann.
Erwartest Du darauf von mir jetzt noch eine ernsthafte Antwort?
Ich habe hier in diesem Forum zur Bewertung des "wirren zeugs" bereits zwei wesentliche Fragen getellt:
- Muss man das Forum als Fachkraft für Webentwicklung kennen?
- Wieviele Webanwender kennen sich mit der Technik dahinter aus?
natürlich habe ich die Antworten aufmerksam gelesen und auch in andern Fachkreisen diskutiert.
Da war der Sinn der Fragen.
Die Ergebnisse darf ich leider nicht veröffentlichen, aber es bekräftigt mich in der Auffassung, dass Du hier derjenige bist, der wirres Zeug redet.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Hier ist der Punkt erreicht, wo man bei Deinen Äußerungen nur noch von wirrem Zeug reden kann.
Erwartest Du darauf von mir jetzt noch eine ernsthafte Antwort?
warum nicht? Ich bin auf Deine "Argumentation" doch auch ernsthaft eingegangen, obwohl Du dafür eher eine Ohrfeige verdient hättest.
- Muss man das Forum als Fachkraft für Webentwicklung kennen?
Nein.
- Wieviele Webanwender kennen sich mit der Technik dahinter aus?
Die Anzahl ist irrelevant, solange man den Wert nicht auf exakt 0 reduzieren kann.
Welchen Bezug haben die Fragen zum aktuellen Problem?
Die Ergebnisse darf ich leider nicht veröffentlichen, aber es bekräftigt mich in der Auffassung, dass Du hier derjenige bist, der wirres Zeug redet.
Die Meinung darfst Du Dir natürlich gerne bilden, nur wird es Dir schwer fallen, meine Äußerungen fachlich zu entkräften. Insbesondere wenn Du dazu einen Fall konstruierst, bei dem die Funktionalität oder Nichtfunktionalität einer Website völlig egal wird.
Cheatah
Hi,
Diejenigen, die dauernd an ihrmen Browser herumfummeln und dies sogar mitten während des Besuches einer seriös gemachten Seite tun, sind ohnehin nicht ernst zu nehmen.
Es soll ja auch Leute geben, die (dank tabbed browsing) gleichzeitig mehrere Seiten besuchen - wenn auch nur eine einzige (wegen des Nerv-Faktors) davon erfordert, daß Javascript vorübergehend deaktiviert wird, ist halt auch die "seriös gemachte" Seite davon betroffen.
(Kann eine Seite, die Javascript voraussetzt, überhaupt als "seriös gemacht" bezeichnet werden?)
Wieso bezeichnest Du das Konfigurieren des Browsers eigentlich als "herumfummeln"? Wer das tut, den kann ich nicht wirklich ernstnehmen.
cu,
Andreas
Hello,
Wieso bezeichnest Du das Konfigurieren des Browsers eigentlich als "herumfummeln"? Wer das tut, den kann ich nicht wirklich ernstnehmen.
Wortspiele ohne Bodenhaftung...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
你好 Tom,
Wieso bezeichnest Du das Konfigurieren des Browsers eigentlich als
"herumfummeln"? Wer das tut, den kann ich nicht wirklich ernstnehmen.Wortspiele ohne Bodenhaftung...
Dir nachempfunden.
再见,
CK
Hello,
Wieso bezeichnest Du das Konfigurieren des Browsers eigentlich als
"herumfummeln"? Wer das tut, den kann ich nicht wirklich ernstnehmen.Wortspiele ohne Bodenhaftung...
Dir nachempfunden.
Erklär mal bitte, wo da der Fachbezug liegt, den ich an Dir sonst immer so schätze.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
你好 Tom,
Dir nachempfunden.
Erklär mal bitte, wo da der Fachbezug liegt, den ich an Dir sonst immer
so schätze.
Wenn du nicht fachbezogen auftrittst, musst du dich nicht wundern, wenn
man dir nicht fachbezogen antwortet.
再见,
CK
Hello,
Dir nachempfunden.
Erklär mal bitte, wo da der Fachbezug liegt, den ich an Dir sonst immer
so schätze.Wenn du nicht fachbezogen auftrittst, musst du dich nicht wundern, wenn
man dir nicht fachbezogen antwortet.
Ach so: Das zweite Buch Mose / 21. Kapitel
Dann kann ich hier ja aussteigen, wenn selbst Du nicht wieder zum Fachbezug zurückleiten kannst...
Da scheint also wirklich ein ungeklärter Dissenz zu bestehen. Aber auf reine Streitgespräche habe ich heute keine Lust.
Meine Gedanken zum Thema waren durchaus kein "wirres Zeug". Wenn Javascript keinerlei Nutzen hätte, ware es schon lange ausgestorben. Und wenn ein ernstzunehmender Anteil der User die diesbezüglichen Einstellungen während eines Seitengruppenbesuches ändern würde, hätten die maßgeblichen Kreise (die mit der Kohle) das schon lange unabänderlich machen lassen.
Oder glaubst Du noch an den Weihnachtsmann?
Über verschiedene Dialekte der (nicht mehr ausschaltbaren) JavaScripts müsste man dann allerdings wohl noch streiten. Da würde ich Dir zustimmen, wenn Du diesen Diksussionsfaden aufgreifen würdest.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Meine Gedanken zum Thema waren durchaus kein "wirres Zeug".
Dein Ausdruck derselben hingegen schon.
Wenn Javascript keinerlei Nutzen hätte, ware es schon lange ausgestorben. Und wenn ein ernstzunehmender Anteil der User die diesbezüglichen Einstellungen während eines Seitengruppenbesuches ändern würde, hätten die maßgeblichen Kreise (die mit der Kohle) das schon lange unabänderlich machen lassen.
Auf die Gefahr hin, mich zu wiederholen: Du redest wirr.
Cheatah
Hi,
Also ich kann naürlich mit PHP rausfinden welcher Browser es ist
echo $HTTP_USER_AGENT;
und was hat "Mozilla/6.0 (Build 20021126; U; SuSI.Ruth; en-US)" dann bitte mit meinem Browser zu tun? Richtig, nichts.
Und ich kann auch zwischen JavaScript und PHP kommunizieren.
Nein, kannst Du nicht. PHP kann JavaScript-Code ausgeben, was keine Kommunikation darstellt, und JavaScript kann allerhöchstens mit dem Browser kommunizieren, mehr nicht. Ob dieser bereit ist, die Kommunikation an einen Server weiterzugeben, ist jenseits Deines Einflusses.
Das weiss ich inzwischen...
Verwechsele Informationen bitte nicht mit Wissen. Erstere können nämlich nur Bruchstücke der Wahrheit umfassen - oder schlicht und ergreifend falsch sein.
Cheatah
Hello,
Ja, das ist mit Einschränkungen möglich.
Natürlich nicht beim ersten direkten Request, sondern erst bei einem, bei dem Du dem User bereits eine Response geschickt hast, aus der Du dann wieder auf dei Ressourcen zugreifst.
Das solltest Du also Bedenken.
Und wie man dann mit JavaScript z.B. eine hidden-Variable in einem Formular füllt oder an die URL einen Parameter anhängt, das kannst Du in SelfHTML und hier im Forumsarchiv finden.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Ja, das ist mit Einschränkungen möglich.
Natürlich nicht beim ersten direkten Request, sondern erst bei einem, bei dem Du dem User bereits eine Response geschickt hast, aus der Du dann wieder auf dei Ressourcen zugreifst.
Der Zustand "Javascript ist im Client aktiv" ist keine Konstante, der Zustand kann sich jederzeit ändern.
Man kann serverseitig höchstens erfahren, ob Javascript zum Zeitpunkt des Requests aktiv war, aber niemals, ob es noch aktiv sein wird, wenn die Response beim Client ankommt (oder zu irgendeinem noch weiter in der Zukunft liegenden Zeitpunkt).
cu,
Andreas
Hello,
Ja, das ist mit Einschränkungen möglich.
Natürlich nicht beim ersten direkten Request, sondern erst bei einem, bei dem Du dem User bereits eine Response geschickt hast, aus der Du dann wieder auf dei Ressourcen zugreifst.Der Zustand "Javascript ist im Client aktiv" ist keine Konstante, der Zustand kann sich jederzeit ändern.
Man kann serverseitig höchstens erfahren, ob Javascript zum Zeitpunkt des Requests aktiv war, aber niemals, ob es noch aktiv sein wird, wenn die Response beim Client ankommt (oder zu irgendeinem noch weiter in der Zukunft liegenden Zeitpunkt).
Der Zustand, dass der User vor dem PC noch lebt, ist auch keine Konstante. Wäre doch schade, wenn man noch einen komplexen Response berechnen würde und absendet, und der blöde Kerl ist inzwischen verreckt.
Ich denke, dass die Teilbarkeit von Zuständen hier von Dir übertrieben wird. Wenn der User sein JavaScript während der Session abschaltet, gibt es ja auch immer noch den <noscript>-Bereich. Das geliche gilt für Cookies oder die Übermittlung von Credentials bei HTTP-Auth.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Ich denke, dass die Teilbarkeit von Zuständen hier von Dir übertrieben wird. Wenn der User sein JavaScript während der Session abschaltet, gibt es ja auch immer noch den <noscript>-Bereich. Das geliche gilt für Cookies oder die Übermittlung von Credentials bei HTTP-Auth.
Hmm also anden <noscript> habe ich auch schon gedacht. Das Problem ist das ich nicht alles in dem Script teil mache!
Das sieht ungefähr so aus:
<script language="javascript" type="text/javascript">
// gaaanz viel JavaKram
</script>
<tr>
<td id="a0" bgcolor="#FAFAFA" align="left"onmouseover="mOvra(id);hideMenuById(pnavi_b); hideMenuById(pnavi_c); hideMenuById(pnavi_d); hideMenuById(pnavi_f); hideMenuById(pnavi_g); hideMenuById(pnavi_i); " onmouseout="mOuta(id);" style="border-bottom:solid 0px #000000; "><div style="padding-left:5; padding-right:5; padding-top:2; padding-bottom:2"><a class="specialnavi" href="index.php" target="_self"><b>Home </b></a></div></td>
</tr>
Joar... und wenn ich <noscript> benutze gibt er mir doch den HTML Code dennoch aus oder?
ich will dann aber was GANz anderes ausgeben
Hallo,
Joar... und wenn ich <noscript> benutze gibt er mir doch den HTML Code dennoch aus oder?
dennoch? welchen? Nein, er gibt das aus was _nicht_ zwischen <noscript> ... </noscript> steht.
ich will dann aber was GANz anderes ausgeben
<body>
<noscript>
was GANz anderes
</noscript>
</body>
Grüße,
Jochen
Hello,
Joar... und wenn ich <noscript> benutze gibt er mir doch den HTML Code dennoch aus oder?
dennoch? welchen? Nein, er gibt das aus was _nicht_ zwischen <noscript> ... </noscript> steht.
ich will dann aber was GANz anderes ausgeben
<body>
<noscript>
was GANz anderes
</noscript>
</body>
Wenn der Browser noch überhaupt kein JavaScript kann, dann kennt er die <noscript>-Tags nicht und ignoriert sie daher. Der Text zwischen diesen Tags ist für ihn also ganz normaler HTML-Text.
Der Text zwischen den
<script ...>
<!--
Javascriptcode ...
//-->
</script>
ist für ihn nicht sichtbar, da er für HTML auskommentiert ist, wenn Du es so machst wie oben.
Die <script>-Tags kennt er dann ja wahrscheinlich auch nicht und ignoriert sie daher.
Nun bleibt nur noch die Steitfrage, wo denn der NoScript-Bereich zu stehen hat. Innerhalb des Script-Bereiches ode direkt im Anschluss daran und für welches Scripting er gültig ist. Theoretisch könnte man auch Javscript, VB-Script und noch weitere, die es vielleicht gibt, parallel benutzen. Ich konnte darüber aber nichts finden, zu welchem Script-Bereich dann der NoScript-Bereich gehört, erinnere mich aber dunkel daran, dass wir das hier schonmal diskutiert haben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Wenn der Browser noch überhaupt kein JavaScript kann, dann kennt er die <noscript>-Tags nicht und ignoriert sie daher. Der Text zwischen diesen Tags ist für ihn also ganz normaler HTML-Text.
Ein Client muß kein Javascript können, um die Elemente script und noscript interpretieren zu können.
Deiner Argumentation nach müßte
<script style="text/javascript">alert("bla");</script>
<noscript>Dies ist ein Noscript-Bereich</noscript>
in nicht-javascriptfähigen Browsern zu der Ausgabe
alert("bla"); Dies ist ein Noscript-Bereich
führen.
Sowohl Lynx als auch w3m, die beide kein Javascript können, geben aber nur
Dies ist ein Noscript-Bereich
aus - verhalten sich also völlig korrekt.
Die Kommentare innerhalb von script (und style) sind für Clients, die die Elemente script (style) nicht kennen (also solche, die von HTML 3.2 noch nichts wissen).
Nun bleibt nur noch die Steitfrage, wo denn der NoScript-Bereich zu stehen hat. Innerhalb des Script-Bereiches ode direkt im Anschluss daran und für welches Scripting er gültig ist.
Wie kommst Du auf die perverse Idee, ein noscript-Element könne in einem script-Element stehen?
script hat als Content-Model CDATA - also können dort keine Elemente stehen.
Ich konnte darüber aber nichts finden, zu welchem Script-Bereich dann der NoScript-Bereich gehört, erinnere mich aber dunkel daran, dass wir das hier schonmal diskutiert haben.
http://www.w3.org/TR/html401/interact/scripts.html#edef-NOSCRIPT
Der Inhalt ist zu beachten, wenn
(was bedeuten würde, das ein einziger nichtausführbarer script-Bereich dazu führen würde, daß alle nachfolgenden noscript-Bereiche beachtet werden müßten - ich meine, daß frühere Tests ergeben hatten, daß fast alle Browser dabei nur den letzten script-Bereich vor einem noscript berücksichtigt hatten)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
cu,
Andreas
Hallo Andreas, hallo Tom
http://www.w3.org/TR/html401/interact/scripts.html#edef-NOSCRIPT
Der Inhalt ist zu beachten, wenn
- keinerlei Scripting möglich ist
Diese Formulierung ist mir klar. Wobei alle <noscript> Bereiche Berücksichtigt werden.
<noscript>1. noscript</noscript>
<p>Text</p>
<noscript>2. noscript</noscript>
ergibt die Ausgabe:
1. noscript
Text
2. noscript
- ein vorhergehender Script-Bereich nicht ausgeführt werden konnte
(was bedeuten würde, das ein einziger nichtausführbarer script-Bereich dazu führen würde, daß alle nachfolgenden noscript-Bereiche beachtet werden müßten)
Ein kurzer Test ergab folgendes:
<script language="JavaScript" type="foo"></script>
<noscript>foo</noscript>
<script language="JavaScript" type="text/javascript"></script>
<noscript>text/javascript</noscript>
Opera macht es m.M nach richtig. Die Ausgabe ist "foo"
Der IE versagt.
Grüße,
Jochen
Hi,
Ich denke, dass die Teilbarkeit von Zuständen hier von Dir übertrieben wird.
Nein, warum?
Wenn der User sein JavaScript während der Session abschaltet, gibt es ja auch immer noch den <noscript>-Bereich.
Wenn es den noscript-Bereich sowieso gibt, gibt es keinen Grund, serverseitig wissen zu müssen, ob Javascript aktiv ist ;-)
cu,
Andreas
Hello,
Wenn es den noscript-Bereich sowieso gibt, gibt es keinen Grund, serverseitig wissen zu müssen, ob Javascript aktiv ist ;-)
Unter Berücksichtigung einer bei vernünftigen Entwicklern gewünschten Traffic-Reduzierung ist das surchaus von Interesse. Außerdem kann ein Seitenanbieter es ja auch nach freiem Belieben bestimmte Techniken zur Auflage machen.
Das Problem der "Aussperrung" ist hinlänglich bekannt und gegen die gewünschte Funktionalität abzuwägen.
Grundsätzlich steigt der Entwicklungsaufwand bei Business-Internet-Applikationen exponentiell, wenn man nicht weiß, welche Technik der User benutzen wird. Es ist also durchaus als vernünftig anzusehen, wenn man sich da entscheidet. Und die Entscheidung geht nicht immer zu HTML. Eine auf dem Client mittels JavaScript erzeugte Grafik ist allemale billiger, als eine mittels reinem (HTML und CSS) erzeugte.
Ich hatte dieses Anwendungsproblem erst kürzlich. Meine "HTML-Grafikfunktionen" habe ich hier ja auch veröffentlicht und deren Grenzen beschrieben. JavaScript konnte vorausgesetzt werden, SVG, Flash oder Java aber nicht.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Der Zustand "Javascript ist im Client aktiv" ist keine Konstante, der Zustand kann sich jederzeit ändern.
vor allem ist es kein Boole'scher Wert, wie es viele vermuten. Genauso bei Cookies.
Cheatah