VBScript Frage

Hallo

Ich habe programmiert das beim Start meiner Homepage eine MsgBox erscheint, aber wie
schaffe ich es jetzt dass wenn ich von einer anderen Seite meiner Homepage auf „Zurück“
klicke dass sie nicht angezeigt wird?!? Ihr wisst schon, sie darf nur bei den
Start meiner Seite angezeigt werden!!!

Gruss Beni

Hi Beni,

mir fällt spontan folgendes ein:

Frameset: Die Frameset-Seite enthält das Script, innerhalb des Framesets kann dann passieren, was will, aber die Meldung wird nur 1x beim Start des Framesets gezeigt. Ein Frameset kann aber möglicherweise je nach Art und Inhalt der Seiten etwas übertrieben und unangebracht sein.

Mit document.referrer funktioniert es leider nicht, da durch history.back() der Referrer nicht verändert wird. Wenn Du stattdessen Links mit Adresseangabe (href=„xyz.htm“) einrichten würdest, hättest Du dadurch noch eine Möglichkeit mehr. Das hätte jedoch den Nachteil, dass Du im Script die URLs aller Folgeseiten unterbringen müsstest.

Gruß
Hansi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi

Kannst du mir die zweite Lösung noch besser erklären (Die nach dem Frameset).
Wie muss ich das machen?!?

Gruss Beni

Hallo,

hmmm … jede der Unterseiten wurde ja von einem Link auf einer der übergeordneten Seiten aufgerufen. (hier: startseite.htm) Deshalb kannst Du jeweils auf den direkt untergeordneten Seiten im Link „Zur Startseite“ statt des history.back()-Befehls auch als Ziel den Namen der Startseite angeben. Also:

[Zur Startseite](javascript:history.back())

ersetzen durch:

Zur Startseite

So wird erreicht, dass die Unterseite Referrer für den erneuten Aufruf der Startseite ist. Diesen Referrer kannst Du dann im Script auf der Startseite ermitteln. Wenn Du nun neben der Startseite beispielsweise 3 Unterseiten hättest, die unter1.htm, unter2.htm und unter3.htm heißen, und wenn Deine Domain http://www.xyz.de wäre, müsste das Script auf der Startseite (innerhalb des -Tags) etwa so aussehen:

var a = „http://www.xyz.de/unter1.htm
var b = „http://www.xyz.de/unter2.htm
var c = „http://www.xyz.de/unter3.htm

if(document.referrer != a)
{
if(document.referrer != b)
{
if(document.referrer != c)
{
alert(‚Meldung‘);
)
}
)

Du verschachtelst also mehrere if-Bedingungen ineinander. Erst wenn sie alle erfüllt sind, wird die Meldung gebracht. Wenn ich recht erinnere, kannst Du die Anweisungen auch folgendermaßen verschachteln:

var a = „http://www.xyz.de/unter1.htm
var b = „http://www.xyz.de/unter2.htm
var c = „http://www.xyz.de/unter3.htm

if(document.referrer != a || document.referrer != b || document.referrer != c)
{
alert(‚Meldung‘);
)

da bin ich mir aber nicht 100-prozentig sicher (da so bisher noch nicht verwendet). Vielleicht weiß ja jemand genauer bescheid und postet hier noch einen Komentar dazu. Ich werd’s gleich mal als Frage posten :smile:. Jedenfalls funktioniert das erste Script. Da bin ich sicher. Wenn also der Besucher von woanders herkommt als von den Unterseiten, wird die Meldung gebracht. Es ist jedoch zu beachten, dass viele Leute Software wie z.B. den Webwasher verwenden, wodurch die Übergabe des Referrers unterdrückt werden kann. In diesem Fall erscheint die Meldung dann trotzdem jedesmal wieder. Jedoch hat die Anwendung des oben beschriebenen Links den Vorteil, dass Besucher, die z.B. von einer Suchmaschine oder über einen anderen externen Link direkt auf eine der Unterseiten gelangen, beim Klick auf den Link tatsächlich auf die Startseite gelangen und nicht wieder zurück zur Suchmaschine bzw. Referrer-Seite geleitet werden. Ich hoffe, das war verständlich genug. Bei weiteren Fragen einfach nachbohren.

Gruß
Hansi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

P.S.
Siehste, so geht’s einem :smile:

Die Unsicherheit bei dem 2-ten Scriptvorschlag war begründet.
es müsste heißen:

if(document.referrer != a && document.referrer != b && document.referrer != c)
{
alert(‚Meldung‘);
)

|| ist eine oder-Verbindung. Da Du in diesem Fall aber eine und-Verbindung brauchst, muss && statt || stehen. So, jetze hammas abba.

Gruß
Hansi

var a = „http://www.xyz.de/unter1.htm
var b = „http://www.xyz.de/unter2.htm
var c = „http://www.xyz.de/unter3.htm

if(document.referrer != a)
{
if(document.referrer != b)
{
if(document.referrer != c)
{
alert(‚Meldung‘);
)
}
)

Du verschachtelst also mehrere if-Bedingungen ineinander. Erst
wenn sie alle erfüllt sind, wird die Meldung gebracht. Wenn
ich recht erinnere, kannst Du die Anweisungen auch
folgendermaßen verschachteln:

var a = „http://www.xyz.de/unter1.htm
var b = „http://www.xyz.de/unter2.htm
var c = „http://www.xyz.de/unter3.htm

if(document.referrer != a || document.referrer != b ||
document.referrer != c)
{
alert(‚Meldung‘);
)

da bin ich mir aber nicht 100-prozentig sicher (da so bisher
noch nicht verwendet). Vielleicht weiß ja jemand genauer
bescheid und postet hier noch einen Komentar dazu. Ich werd’s
gleich mal als Frage posten :smile:. Jedenfalls funktioniert das
erste Script. Da bin ich sicher. Wenn also der Besucher von

hi

ich bin kein java und html profi!!!

wo muss ich dass einfügen: Zur Startseite

und das hier: if(document.referrer != a && document.referrer != b && document.referrer != c)
{
alert(‚Meldung‘);
)

Gruss Beni

Hallo Beni,

wo muss ich dass einfügen: ZurStartseite

Dieses muss, da es ein Link zu Deiner Startseite ist, im Quelltext der direkt der Startseite untergeordneten Seiten eingefügt werden. Öffne die HTML-Datei(en) und trage den Link in einer Zeile zwischen und ein. Die Position innerhalb des -Tags bestimmt, ob der Link weiter oben oder unten zu sehen ist. Darum schlage ich vor, dass Du ihn in die Zeile direkt unterhalb von einträgst, damit er ganz oben zu sehen ist. Du musst natürlich auch daran denken, den Ausdruck ‚startseite.htm‘ durch den Namen Deiner Startseite zu ersetzen.

und das hier: if(document.referrer != a && document.referrer
!= b && document.referrer != c)
{
alert(‚Meldung‘);
)

Das komplette Script (hier hast Du ja nur einen Ausschnitt zitiert) muss im Quelltext der Startseite in eine Zeile zwischen und eingefügt werden. Dabei musst Du daran denken, dass in den Zeilen, die mit ‚var‘ beginnen, die Ausdrücke hinter den Gleichheitszeichen durch die richtigen Angaben ersetzt werden. Wie Deine Domain lautet, weiß ich leider nicht und die Dateinamen auch nicht.

Das Ganze funktioniert aber nur online. Solange Du offline die Funktion überprüfen willst, wird jedesmal die Meldung kommen. Um zu testen ob’s geht, musst Du also die Dateien auf den Server hochladen und sie dann von dort aufrufen.

Wenn Du mehr über HTML und Javascript wissen willst, empfehle ich dringend, Dir folgende Internet-Seiten einmal anzuschauen:

http://www.teamone.de/selfhtml/
http://www.html-workshop.de

Gruß
Hansi