404 clientseitig abfangen mit js?
tobi&maettu
- javascript
0 Reiner0 Ralf Walther0 tobi&maettu0 Mulder0 tobi&maettu
0 Reiner
Hallo zusammen!
Wir möchten eine eigene 404 Seite (uä) in unsere Page einbauen, haben allerdings keinen Einfluss auf den Server. Gibt es eine Möglichkeit, dies in JavaScript zu tun? Wenn nicht, was wäre eine möglichst schlanke Alternative?
Könnte von Bedeutung sein: Wir rufen alle Links via JS auf.
in der Datei scripts.js:
function Aufruf(Link){
window.open(Link)
}
Beim entsprechenden Eintrag im body:
<script type="text/javascript">
<!--
var Seite1 = "http://www.seitesowieso.htm";
//-->
</script>
Und schliesslich der Link:
<a href="javascript:Aufruf(Seite1)">Seite1</a>
Diese etwas komplizierte Variante, weil wir oft von verschiedenen Orten die Links aufrufen und nur eine Linkliste pflegen wollen.
Hi,
Wir möchten eine eigene 404 Seite (uä) in unsere Page einbauen, haben allerdings keinen Einfluss auf den Server. Gibt es eine Möglichkeit, dies in JavaScript zu tun? Wenn nicht, was wäre eine möglichst schlanke Alternative?
Wenn Du keine Möglichkeit hast, das in einer .htaccess zu machen, sehe ich eigentlich nur die, die Fehler zu vermeiden.
Meine Maschine könnte helfen: http://netp.ath.cx
Gruß
Reiner
Hallo Tobi & Matheu,
es geht nicht, da die Entscheidung, ob eine Seite da ist, der Server trifft und nicht der Client. Es besteht keine Möglichkeit per JS vom
Client aus auf das Dateisystem des Servers zuzugreifen.
Gruß Ralf
Danke für den Reply!
2.Versuch:
Wenn ein Link futsch ist, sendet der Server doch einen Response von der Art
The response from the server shall start with the following syntax (See also: note on client tolerance ):
<status line> ::= <http version> <status code> <reason line> <CrLf>
<http version> ::= 3*<digit>
<status code> ::= 3*<digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<reason line> ::= * <printable>
<http version>
identifies the HyperText Transfer Protocol version being used by the server. For the version described by this document version it is "HTTP/1.0" (without the quotes).
(Quelle W3C)
Es muesste doch eigentlich moeglich sein, diesen response abzufangen und auszuwerten (mit js). Mit Java geht's ja auch.
Wir haben uns auch ueberlegt, dass man evt etwas machen könnte mit der ERROR-Seite, so von der Form
if (document.title == "ERROR 404 Request usw...") {
...
}
wir scheiterten aber daran, dass wir auf diese Seite keinen Zugriff hatten.
Any ideas?
Es muesste doch eigentlich moeglich sein, diesen response abzufangen und auszuwerten (mit js). Mit Java geht's ja auch.
Wir haben uns auch ueberlegt, dass man evt etwas machen könnte mit der ERROR-Seite, so von der Form
if (document.title == "ERROR 404 Request usw...") {
Von wo aus soll das denn passieren? Auf der 404-Seite selber oder wie?
mit der ERROR-Seite, so von der Form
if (document.title == "ERROR 404 Request usw...") {
Von wo aus soll das denn passieren? Auf der 404-Seite selber oder wie?
Nein. Wir öffnen aus der Linkliste ein neues Fenster:
popup = window.open(neueseite);
dann müsste ja jetzt das neue Fenster aktuell sein (?).
Jetzt:
var titel = popup.document.title;
if(titel == "ERROR: The requested URL could not be retrieved") {
window.open(Error-Seite);
}
Allerdings erzeugt das einen Skriptfehler: "Zugriff wurde verweigert"
und zwar bei var
Hallo tobi&maettu,
Allerdings erzeugt das einen Skriptfehler: "Zugriff wurde verweigert"
das gehört zum Sicherheitskonzept von javascript - du darfst nicht auf Seiten zugreifen, die nicht zu deiner Domain gehören. und, nein, das kann man auch nicht umgehen.
und zwar bei var
an der Stelle greifst du auf die fremde Seite zu
Grüße aus Nürnberg
Tobias
Hallo tobi&maettu,
Allerdings erzeugt das einen Skriptfehler: "Zugriff wurde verweigert"
das gehört zum Sicherheitskonzept von javascript - du darfst nicht auf Seiten zugreifen, die nicht zu deiner Domain gehören. und, nein, das kann man auch nicht umgehen.
Besten Dank nach Nürnberg!
Na ja, wenn nicht mit JS, dann geht's vielleicht mit was anderem (wir sind da nicht so die Hirsche...), das man einigermassen einfach in unser Link-Konzept einbauen könnte (siehe oben)?
PS: Zur Sicherheit doch noch: Die .htaccess-Datei gilt für alle Seiten, die über das entsprechende Netzwerk laufen, oder könnten wir eine Datei anlegen lassen, die nur eine bestimmte Seite/URL kontrolliert und 'unsere' Fehlerseite aufruft. Für den Rest des Netzwerks soll eine andere Fehlerseite geladen werden, die mit unserem Projekt nix zu tun hat.
Danke für den Reply!
2.Versuch:
Wenn ein Link futsch ist, sendet der Server doch einen Response von der ArtThe response from the server shall start with the following syntax (See also: note on client tolerance ):
<status line> ::= <http version> <status code> <reason line> <CrLf>
<http version> ::= 3*<digit>
<status code> ::= 3*<digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<reason line> ::= * <printable><http version>
identifies the HyperText Transfer Protocol version being used by the server. For the version described by this document version it is "HTTP/1.0" (without the quotes).(Quelle W3C)
Es muesste doch eigentlich moeglich sein, diesen response abzufangen und auszuwerten (mit js). Mit Java geht's ja auch.
Wir haben uns auch ueberlegt, dass man evt etwas machen könnte mit der ERROR-Seite, so von der Form
if (document.title == "ERROR 404 Request usw...") {
...
}wir scheiterten aber daran, dass wir auf diese Seite keinen Zugriff hatten.
Das geht in dem Fall nicht, da Dein JavaScriptcode weg ist, wenn der Response kommt. Würde aber mit cgi gehen.
Wenn Dir diese Radioseite gehört, guck Dir jetzt mal das Ergebnis an.
Gruß
Reiner