[gelöst][HTML/CSS] Page Reload ohne JavaScript

Cyperfriend

Der ohne Avatar
Registriert
14 Juli 2013
Beiträge
1.123
Ich habe ein klassisches Formular mit <select><option>.

Wenn ich die Auswahl jetzt ändere hätte ich gerne, dass die Seite neu lädt, aber ohne dabei JavaScript einzusetzen. Da geht doch bestimmt mittels CSS3 etwas?
 
Zuletzt bearbeitet:
Re: [HTML/CSS] Page Reload ohne JavaScript

Guten Abend,

ganz ohne JS ist das nicht realisierbar, würde ich jetzt mal kühn behaupten. Eine bestimmte Zeit nach dem Laden der Seite wäre das mit einem Meta-Redirect möglich, jedoch kann man nicht auf Events reagieren. Was willst du denn erreichen? Soll das Select-Element eine Art Navigation repräsentieren?

Gruß,

Ammon
 
Zuletzt bearbeitet:
Re: [HTML/CSS] Page Reload ohne JavaScript

Ist nicht möglich. Mit JS kannst du da dir eben mit den angesprochenen Events helfen und darauf reagieren. CSS / HTML Plain ist halt komplett statisch.
Und mit CSS3 auf selectoptionen zu reagieren dürfte auch unmöglich sein, behaupte ich jetzt auch einfach mal.
 
Re: [HTML/CSS] Page Reload ohne JavaScript

Ohne JavaScript ist das tatsächlich nicht automatisch (ohne Klick auf einen Submit-Button) möglich. Allerdings würde sich anbieten, einen Submit-Button vorzusehen und diesen dann per JavaScript auszublenden und einen Event-Handler für das automatische Neuladen zu registrieren. Somit wäre die Funktionalität auch ohne JavaScript-Unterstützung gegeben, wobei dann zusätzlich auf den Submit-Button geklickt werden muss, während bei aktiver JS-Unterstützung die Seite automatisch aktualisiert wird.
 
  • Thread Starter Thread Starter
  • #5
Re: [HTML/CSS] Page Reload ohne JavaScript

Danke für eure Antworten,
Schade, dass das nicht geht. Hoffentlich kommt das mit einer der nächsten CSS-Spezifikationen.
 
Guten Morgen,

das bezweifle ich stark. Cascading Style Sheets sind - wie der Name schon sagt - rein für Design und Layout bestimmt und können keinerlei Events abfangen oder auslösen. Einzig die hover-, focus- und active-Selektoren könnte man dazu zählen, aber selbst damit lässt sich keine Seite neu laden, sondern lediglich Farben, Borders etc. verändern. Richtig dynamische Events wird man hoffentlich mit CSS nie verwalten können, sonst gäbe das ein heilloses Durcheinander.

Zudem muss man sich heutzutage meiner Meinung nach nicht mehr so gegen JavaScript sträuben. Durch Facebook und YouTube hat der Großteil einen halbwegs aktuellen Browser installiert, der auch JS problemlos beherrscht. Wer JS grundsätzlich ablehnt, ist in meinen Augen etwas paranoid.

Grüße,

Ammon
 
Zudem muss man sich heutzutage meiner Meinung nach nicht mehr so gegen JavaScript sträuben. Durch Facebook und YouTube hat der Großteil einen halbwegs aktuellen Browser installiert, der auch JS problemlos beherrscht. Wer JS grundsätzlich ablehnt, ist in meinen Augen etwas paranoid.
Sicherlich kann man JavaScript sinnvoll einsetzen, um die Bedienung einer Website zu erleichtern oder grafische Effekte zu realisieren. Allerdings sollte man sich stets bewusst sein, dass eine clientseitige JavaScript-Unterstützung nicht vorausgesetzt werden kann - deshalb ist darauf zu achten, dass die implementierten Verbesserungen durch JavaScript optional sind und die Grundfunktionalität auch ohne JavaScript zugänglich bleibt.

JavaScript zu deaktivieren bzw. nur für eine Whitelist von Websites du deaktivieren, ist meines Erachtens keineswegs paranoid. Viele Schwachstellen in Browsern lassen sich nur mit JavaScript als Angriffsvektor ausnutzen. Dasselbe gilt für Plugins - diese sollten auf ein Minimum reduziert und wenn möglich nur gezielt aktiviert werden (Whitelist, Click-to-Play, ...).
 
  • Thread Starter Thread Starter
  • #8
Ich verzichte deswegen auf JavaScript, weil mir diese Scriptsprache sowas von nicht zusagt. Für mich ist das ein funktionierendes Etwas und für viele einfache Funktionen wird ellenlanger Code benötigt, dessen Syntax jeglicher Logik entspringt. Es gibt zwar wirklich Funktionen, die sich sehr einfach einbinden lassen, aber wäre es nicht toll eine Webseite zu bauen, wo man nicht erst mittels NoScript einen Freifahrtsschein ausstellen muss, was den Sinn und Zweck von NoScript irgendwie auch ab absurdum führt?

Da der Reload nicht automatisch funktioniert wird man bei mir eben einen Button drücken müssen. Ich bin da durchaus kompromissbereit. Im übrigen kann CSS schon einige Dinge, welche auch nur noch entfernt mit Design zu tun haben. ein Beispiel aus dem alten Forum, made bei Kugelfisch.
 
Guten Tag,

Im übrigen kann CSS schon einige Dinge, welche auch nur noch entfernt mit Design zu tun haben. ein Beispiel aus dem alten Forum, made bei Kugelfisch.

technisch gesehen wird bei diesem Beispiel ja auch nur eine grafische Eigenschaft, nämlich die Sichtbarkeit, modifiziert, und zwar nach dem selben Prinzip, mit dem auch die :hover-Selektoren arbeiten. Eine gewisse Dynamik kann man dem nicht aberkennen, allerdings ist man hier noch weit davon entfernt, eventgesteuert Aktionen wie einen Reload oder gar asynchrone Requests auszulösen. In dem Moment, wo das ermöglicht wird, hat man auf einen Schlag auch einen Rechtfertigungsgrund, ein "NoCSS"-Pendant zu NoScript zu entwickeln, und man stünde wieder vor der selben Diskussion über die potenziellen Gefahren, die diese Technik bietet.

Grüße,

Ammon
 
  • Thread Starter Thread Starter
  • #10
OK, aber wenigstens gäbe es eine vernünftige Syntax :D
Ich hoffe dann einfach mal, dass ein schlauer Kopf irgendwann eine Alternative zu JavaScript entwickelt.
 
Was missfällt dir konkret an JavaScript? Die Sprache an sich (schwache Typisierung, Prototyp-basiertes Objektmodell, Syntax, ...) oder das DOM? In ersterem Fall könntest du dir ggf. einmal CoffeeScript ansehen - eine alternative Skriptsprache, welche sich zu JavaScript kompilieren lässt - in letzterem Fall ein Framework wie z.B. jQuery. Für dein Vorhaben ist allerdings beides übertrieben, denn die Funktionalität lässt sich in wenigen Zeilen realisieren, z.B.:
Code:
Expand Collapse Copy
document.getElementById('fooSelect').onchange = function() { this.form.submit(); }
 
  • Thread Starter Thread Starter
  • #12
Im wesentlichen die Syntax, die so völlig von der Logik anderer Programmier- und Scriptsprachen abweicht und das einfache Funktionen ellenlangen Code erfordern.
Ich meine das Page Reload ist jetzt nicht so tragisch, aber im Grunde schon zu viel.
Warum nicht einfach
onchange=reload($parameter)
Wie gesagt: Ist jetzt ein schlechtes Beispiel, weil der Code jetzt nicht so ewig ist und auch eine Message-Box ist schnell ausgegeben.

Lightbox ist meiner Meinung nach ein recht gutes Beispiel. Mit CSS fand ich es sowas von einfach diese zu erstellen. Ich habe zwar auch ein Tutorial gebraucht, aber da konnte ich wenigstens alles nachvollziehen, weil eine vernünftige Logik dahinter stand und Anpassungen wie schnell einen Rahmen um den Inhalt, etc. waren gleich gemacht.

Du kannst dir ja mal den Spaß machen und die , die du mir im alten Forum gebastelt hast in JavaScript bereitstellen. Ich glaube nicht, dass der Code so schlank, logisch und übersichtlich ist.

Nicht zuletzt fände ich es einfach mal nett eine Seite zu haben, bei der NoScript nicht direkt erstmal um eine Freigabe bettelt, weil sonnst wichtige Funktionen nicht funktionieren oder die Seite einfach total vermurkst aussieht. Ich vertrete die Auffassung, dass Webseiten auch dann funktionieren müssen, wenn der Besucher nicht erst einen Freifahrtsschein ausstellt. Stichworte wären hier auch "DriveBy". Wäre ja nicht das erste mal, dass eine seriöse Seite gekapert wird und Schmutz verteilt.
 
Zuletzt bearbeitet:
Guten Tag,

ich persönlich halte diesen Hype um NoScript ja teilweise für etwas übertrieben. Wer ein wenig nachdenkt, bevor er etwas anklickt, kann auch gefahrlos ohne so etwas auskommen. Ganz abgesehen davon, dass die meisten wohl als allererstes nach dem Besuch einer unbekannten Seite den JS-Zugriff erlauben, sobald danach gefragt wird.

Grüße,

Ammon
 
  • Thread Starter Thread Starter
  • #14
Aber warum ist das so? Weil eben jeder Pups.Webseitenbetreiber meint irgendwelche tollen JavaScript-Dinger einbauen zu müssen. Man denkt schon gar nicht mehr drüber nach. Das ist ungefähr der gleiche Effekt, wie bei dem Dialog von "Dateisicherheitsdialog" oder die UAC. Beachtet das wirklich noch jemand? Der Klick auf "Ausführen" ist längst blinde Routine geworden, wobei ich letzteres längst deaktiviert habe.

Diese Webadmins sind sich offenbar auch nicht darüber im Klaren, dass sie damit Kriminelle auf ihre Server locken, die dann Dreck einschmuggeln, denn natürlich gibt man heise.de eher einen Freifahrtsschein als crackerpornowarezstream-in-russland.tld
 
Warum nicht einfach
Code:
Expand Collapse Copy
onchange=reload($parameter)
Wie gesagt: Ist jetzt ein schlechtes Beispiel, weil der Code jetzt nicht so ewig ist und auch eine Message-Box ist schnell ausgegeben.
Weil eine derartige Zuweisung keinen Sinn macht. :)

Hier würdest Du den Rückgabewert zuweisen, den Du beim Ausführen von reload erhältst. In Wirklichkeit willst Du aber doch eine Funktion aufrufen, daher macht es schon Sinn, dem auch eine Funktion zuzuweisen. Selbst, wenn man nur Java- oder C-Hintergrundwissen hat, macht das doch total Sinn, finde ich. Im Übrigen wäre in den beiden Sprachen viel mehr Code notwendig, um so etwas zu realisieren. In Javascript geht es hingegen ziemlich elegant.

Was für eine Sprache bevorzugst Du denn, wenn ich fragen darf?
 
Guten Morgen,

hast du schon einmal ein Framework wie jQuery verwendet? Damit lässt sich deutlich einfacher programmieren und es sind auch die meisten Browserhürden beseitigt.

Grüße,

Ammon
 
Zuletzt bearbeitet:
Zurück
Oben