Java-Scripte

Zurück zum Script-DB Eingang



http://www.erleuchtet.gmxhome.de/Script-DB/index.htm




Browser

Browser-Abfragen



// ----------------------

// Check browser

// NS4 = Netscape 4x
// IE5 = MSIE ab 4
// OPR = Opera 5, 7
// MZL = Mozilla (nur)
// NEU = Netscape ab 6, Mozilla, MSIE ab 5, Konqueror 3 (Linux), Opera 7

// 'Layers' NUR in NS 4
// IE5 prüft auch AOL 4 / 6
// Opera 7 oft anders als Opera 5/6(~MSIE4)

// ----------------------


var NS4 =var IE5 = (document.all);
var OPR = (window.opera);
var MZL = ((document.getElementById) && (!document.all) && (document.documentElement));
var NEU = (document.getElementById)

// ----------------------

z.B.

if (document.getElementById)
{
alert('Alles klar');
}
else
{
alert('Ihr Browser unterstützt diese Funktion leider nicht');
}
}

____________________

ODER:

<script language=javascript>
<!--
netscape = (document.layers) ? 1:0
goodIE = (document.all) ? 1:0
MZL = ((document.getElementById) && (!document.all)) ? 1:0



Netscape - Abfrage



Netscape - Abfrage und Frame-Ausstieg

<script> <!--
if (self==top && (navigator.appName.indexOf("Netscape")<0 || (self.outerHeight&&self.outerHeight>0))) {
document.close();
top.location="/top/dokument/index.htm";
}
// --> </script>


------------------------------

Netscape - Abfrage II

<script language="javascript" type="text/javascript">
<!--
if(!(document.layers))
{
alert('Alles klar');

document.write ('\<script language\=\"JavaScript\" type\=\"text\/javascript\" src\=\"http\:\/\/123.456.com\/blahblah.js\"\>\<\/script\>');

// weitere Funktionen, wenn NICHT Netscape 4.x!
}


else
{
alert('Netscape 4.x');

// weitere Funktionen, WENN Netscape 4.x
}
// -->
</script>


---------------------------



Umgekehrt ein Skript einfach nur durch skriptgeschriebene Kommentare (<!-- -->) auskommentieren zu lassen nutzt nichts, wenn der Aufruf die Form "Script SRC=XYZ" hat.

<P>

<script language="javascript" type="text/javascript">
<!--
if(document.layers)
document.write('\<\!--');
// -->
</script>


<P>
Ich bin kein Netscape 4.x!

<P>

<script language="javascript" type="text/javascript">
<!--
document.write('Dieses auskommentierte JavaScript wird in Netscape 4.x nicht ausgeführt.');
// -->
</script>

<script language="JavaScript" type="text/javascript" src="
">http://123.456.com/blahblah.js">
<!-- Dieses schon!-->

<P>


<script language="javascript" type="text/javascript">
<!--
if(document.layers)
document.write('\<\!--');
// -->
</script>




Netscape Fenstergröße



Netscape- Fenstergröße- Abfrage

Macromedia standard Script zur Netscape- Fenstergrößen- Abfrage:

<script language="JavaScript">
<!--
function MM_reloadPage(init)
{
// reloads the window if Nav4 resized
if (init==true) with (navigator)
{if
((appName=="Netscape")&&(parseInt(appVersion)==4))
{
document.MM_pgW=innerWidth;
document.MM_pgH=innerHeight;
onresize=MM_reloadPage;
}
}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH)
location.reload();
}
MM_reloadPage(true);
// -->
</script>





Fensternamen online festlegen und feststellen



Neuen Fensternamen online festlegen und feststellen

Stefan Münz 8

<html><head><title>Test</title>
<script type="text/javascript">
<!--
Fenster = window.open("datei.htm","KleinesFenster","width=200,height=200");
function Fenstername() {
alert("Name des kleinen Fensters: " + Fenster.name);
neu = prompt("Vergeben Sie einen neuen Fensternamen","Name");
Fenster.name = neu;
alert("Der Name des Fensters lautet jetzt: " + Fenster.name);
}
//-->
</script>
</head><body>
<a href="javascript:Fenstername()">Name des Fensters</a>
</body></html>






Vollbildzwang






Browser-Fenster Bildschirmfüllend darstellen


<script language ="JavaScript">

self.moveTo(0,0);self.resizeTo(screen.availWidth,screen.availHeight);

</script>








Internet Explorer Favoriten



Internet Explorer - Abfrage: Zu Favoriten hinzufügen

[NetMechanic Home]

JavaScript Tip: Tools Encourage Repeat Visitors

Keep visitors coming back to your Web site by adding a
bookmark link with this simple JavaScript. Visitors browsing with Internet Explorer can add your Web page to their Favorites section
with just one click.

This simple JavaScript code will work in Internet Explorer.

Place this section
inside the <HEAD> section of your page:

<Script Language = "Javascript" Type="Text/Javascript">

<!-- Hide script from older browsers

var urlAddress = "
http://www.netmechanic.com";
var pageName = "Get HTML Code help from NetMechanic";
function addToFavorites()
{
if (window.external)
{
window.external.AddFavorite(urlAddress,pageName)
}
else
{
alert("Sorry! Your browser doesn't support this function.");
}
}
// -->
</script>

In this script, you're declaring two variables and using them in a function.

* The first variable, urlAddress, ist the address of your Web page.
* The second, pageName, is the descriptive text that you want visitors to see when they refer to their Favorites list.
* Netscape Navigator doesn't support the window.external property, so we check first to see if the visitor is using a browser that does. If their browser doesn't support the function, they see an alert box instead.
* The function, addToFavorites, tells the browser to save both variables so the visitor can add the information to their Favorites section.
* Remember to replace the variable names with your own page URL and description.
*
Use The Function In The BODY Section

Once you have your function set up, you can refer to it anywhere in the
<BODY> section of your document. The most obvious place to put it is a few
lines before the content of your document.

Reference the function inside a form to get a different look:

Bookmark this page! <INPUT TYPE="button" VALUE="Add Favorite" onClick="addToFavorites()">







Anzeige und Prüfung

Online oder Offline



Prüft, ob die Seite online oder offline geladen wurde:

<script language="javascript" type="text/javascript">
<!--
// {alert(window.location.protocol);}

{if
(window.location.protocol == "http:")
alert("bin online.");
}

{if
(window.location.protocol == "file:")
alert("bin offline.");
}
// -->
</script>

</HEAD>




OnMouseOver Status



OnMouseOver Status=""


<A HREF="Freddy.htm" TARGET=" blank" onmouseover="window.status=' Link zu Freddys Seiten ';return true;" onmouseout="window.status=''"; > Freddy</A>

Achtung! Freddys statt Freddy's schreiben, sonst Lesefehler. Keine Zeilenumbrüche zulassen.

--

Geht auch im DIV-Bereich:

<DIV onmouseover="window.status=' Link zu Freddys Seiten ';return true;" onmouseout="window.status=''"; >Hier steht Text, der Mausempfindlich ist!</DIV>



Statuszeile default leer



Bei Anker Status leer

Um zu verhindern, daß bei Verweisen und Verweisen auf Anker auf der selben Seite (#) die Adresse in der Statuszeile angezeigt wird, im Verweis

Onmouseover="status=' ' ; return true;" setzen.

---

Um im Gegenteil zu erlauben, daß eine allgemeine Nachricht der Statuszeile nur bei Verweisen und Ankern durch die Adresse (oder eine andere Angabe) ersetzt wird, im <HEAD> folgendes Script einbauen:


<SCRIPT LANGUAGE="JavaScript">
<!--

window.defaultStatus="Lala";

// end hide -->
</SCRIPT>


</HEAD>

Geht nicht in allen Browsern.
Groß- und Kleinschreibung beachten!



OnmouseOver Alert



OnmouseOver Alert - Fenster

<br>
<font face="Times">For additional information about the Council contact:
<b><br>
<a href="#" false;" onmouseover="alert('You do know this page is a joke? Sure you do!');" onclick=";return">United States Council on Problem Vacationing</a></b></font></p>





OnClick Alert



Verhindert falsches Herunterladen bzw. das Öffnen im Browser

<UL>

<LI><A HREF="TEXT2.txt" onMouseOver="window.status='Bitte mit rechter Maustaste aus dem Kontextmenue herunterladen'; return true" onMouseOut="window.status=''; return true" onClick="alert ('Zum Herunterladen bitte die rechte Maustaste verwenden'); return false">Text-File</A>

</UL>



Bildname und Text anzeigen


Wie lassen sich zu einem Bild automatisch Informationen anzeigen, zum Beispiel der Name des Bildes und / oder ein erläuternder Text? Hier zum Beispiel in einer Diaschau. Die Textausgaben lassen sich mit CSS dem Layout unsichtbar anpassen.

<HTML>
<HEAD>

<SCRIPT language="JavaScript">

var DiaschauSpeed = 5000

var Pic = new Array()

Pic[0] = 'image_1a.gif'
Pic[1] = 'image_2a.gif'
Pic[2] = 'image_3a.gif'
Pic[3] = 'image_1a.gif'


var Btxt = new Array()

Btxt[0] = 'Erstes Bild'
Btxt[1] = 'Zweites Bild'
Btxt[2] = 'Drittes Bild'
Btxt[3] = 'Schleife'


var t
var j = 0
var p = Pic.length
var preLoad = new Array()

// alert (p);
for (i = 0; i < p; i++)
{
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
}


function runDiaschau()
{
if (j < 0) j=(p-1);
if (j > p-1) j=0;
document.images.Diaschau.src = preLoad[j].src;
j = j + 1;
t = setTimeout('runDiaschau()', DiaschauSpeed);
}



function TextAnzeigen ()
{
if (j < 1) j=p-1;
var txt = j + ": " + Btxt[j-1];

window.document.Anzeige.Text.value = txt;
window.setTimeout("TextAnzeigen()", 550);
}


function BildNrAnzeigen ()
{
if (j < 1) j=p-1;
var bld = "Bild " + j;

window.document.BildNr.Bild.value = bld;
window.setTimeout("BildNrAnzeigen()", 550);
}


function ReRunDiaschau()
{
DiaschauSpeed = 5000;
}


function runBck()
{
DiaschauSpeed = 30000;
j = j - 1;
document.images.Diaschau.src = preLoad[j-1].src;
t = setTimeout('ReRunDiaschau()', DiaschauSpeed);
}


function runFwd()
{
DiaschauSpeed = 30000
if (j > p-1) j=0;
j = j + 1;
document.images.Diaschau.src = preLoad[j-1].src;
t = setTimeout('ReRunDiaschau()', DiaschauSpeed);
}

//-->
</SCRIPT>


<TITLE>Diaschau</TITLE>

</HEAD>

<BODY bgcolor="#C0C0C0" onload="runDiaschau(); window.setTimeout('TextAnzeigen()', 550); window.setTimeout('BildNrAnzeigen()', 550);">

<P>




<HR>
<TABLE ALIGN=CENTER>
<TR>
<TD ALIGN=CENTER VALIGN=BOTTOM><IMG SRC="image_1.gif" NAME='Diaschau'></TD>
</TR>
</TABLE>
<P>
<HR>
<TABLE ALIGN=CENTER width="" border="1" cellspacing="4" cellpadding="4" bgcolor="#408080">
<TR>
<TD><form name="Anzeige" action=""> TEXT:
<input type="text" size="20" name="Text" value="Einsatz 00:00">
</form></TD>

<TD ALIGN=CENTER><A HREF="javascript:runBck();" onmouseover="window.status=' Eine zurück ';return true;" onmouseout="window.status=''"; return true;" ><IMG SRC="back.gif" ALT=" Eine zurück " Title=" Eine zurück "></A></TD>
<TD align="center">
</TD>
<TD ALIGN=CENTER><A HREF="javascript:runFwd();" onmouseover="window.status=' Eine vorwärts ';return true;" onmouseout="window.status=''"; ><IMG SRC="next.gif" ALT=" Eine vorwärts " Title=" Eine vorwärts "></A></TD>
<TD><form name="BildNr" action=""> BILD:
<input type="text" size="20" name="Bild" value="Einsatz 00:00">
</form></TD>

</TR>
</TABLE>
</CENTER>
</BODY></HTML>


Referrer



referrer (Herkunft)


Speichert die URL, von der aus die aktuelle Seite aufgerufen wurde (geht also in der "history" des Browser genau einen Eintrag zurück). Z.B. Sie kommen von:


Und auch hier der passende Code:

<script language="JavaScript" type="text/javascript">
<!--
document.write(' Referrer: ');
document.write(document.referrer);
-->
</script>





Dateiname



(Namen der Datei)

Datei-Namen ausgeben:

<script language="JavaScript" type="text/javascript">
<!--
DateiURL = document.URL;
DateiURL = DateiURL.replace(/\\/g, "/"); // Für MSIE offline

DateiNamen = DateiURL.split("/");
DateiNamen = DateiNamen.pop();

DateiNamen = DateiNamen.split("#");
// evtl. noch "?" etc.
DateiNamen = DateiNamen.slice(0,1);

// Wichtig für Vergleiche in JS:

DateiNamen = String(DateiNamen);

document.write(' Datei: ');
document.write(DateiNamen);
-->
</script>




Fenstername



name (Namen des Fensters)


Fenster-Namen ausgeben:

<script language="JavaScript" type="text/javascript">
<!--
document.write(' Fenster: ');
document.write(document.name);
-->
</script>





Adresse



URL oder location (Adresse)


Speichert (immer nur) die vollständige (!!!) Adresse des aktuellen Dokuments.

Ähnlich: URL, Pathname, href

<script language="JavaScript" type="text/javascript">
<!--
document.write(' Sie befinden sich hier: ');
document.write(document.location);
-->
</script>





Titel



title (Titel der Datei)


Hier wird der Titel der HTML-Datei rein gespeichert. So haben Sie bspw. die Möglichkeit, diesen dynamisch zu ändern oder einfach nur auszugeben.

<script language="JavaScript" type="text/javascript">
<!--
document.write(' Titel: ');
document.write(document.title);
-->
</script>

(aber nur, wenn der Titel im Dokument VOR dem Script steht!)

---

Seiten-Titel per Default in die Statuszeile:

<SCRIPT LANGUAGE="JavaScript">
<!--
window.defaultStatus=document.title;
// aber nur, wenn der Titel im Dokument VOR dem Script steht!
// end hide -->
</SCRIPT>

</HEAD>






Alert



Alert - Fenster


<A HREF="1.htm" onClick="alert (' Hier geht's \n zur ersten Seite '); return true;">

* Wichtig: ' Text ' in ' '

* return false blockiert die Weiterleitung / beendet die Aktion (hier: Verweis wird nicht aufgerufen).

* \n = Zeilenumbruch

Auch: <SCRIPT LANGUAGE="Javascript">alert ('LALALA')</SCRIPT>





Zuletzt Aktualisiert



'zuletzt aktualisiert' Anzeige:


<body>
<script language="Javascript">
document.write( "Diese Seite wurde " + document.lastModified + " zuletzt aktualisiert.");
</script>
</body>

document.writeln() bewirkt einen Zeilenumbruch nach der Zeile:

document.writeln( "Diese Seite wurde " + document.lastModified + " zuletzt aktualisiert.");

Oder eine Leerzeile:
document.writeln();


lastModified (letzte Änderung)

----

Oder:

<script language="JavaScript" type="text/javascript">
<!--
document.write(' Gespeichert: ');
document.write("Letztes Update: " + document.lastModified);4 -->
</script>

Die Ausgabe sieht ungefähr so aus: Letztes Update: ????????????????????

Allerdings gibt das nur das letzte Speicherdatum wieder; das sagt über die Aktualität des Inhalts nichts aus. Richtiger wäre also: Letzes Speicherdatum.

----

Oder:

<body>
<a href="javascript:alert(document.lastModified)"><b>Letzter Update</b></a> </body>




Frames Verlassen

In Mein Frame



Das folgende Java Script verhindert, daß Seiten aus einem Frameset im Netz vereinzelt dargestellt werden.

Es prüft, ob eine Seite im Netz vereinzelt dargestellt wird, und lädt sie ggf. im eigenen Frameset neu- genauer: in ein zweites Frameset, das die selben Dimensionen haben sollte wie das Original.

Diesen Code in den HEAD- Bereich jeder Seite einfügen, die immer im eigenen Frameset angezeigt werden soll:

<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT">

meineseite = document.URL;
if (top.location == self.location && self.location.protocol == "http:")
{top.location.href="TestmitJava.htm?" + meineseite};

</script>


Der Quellcode für das zweite Frameset lautet dann:

<html>
<head>
<title>Frameset 2</title>

<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT">

origURL = parent.document.URL
contentURL = origURL.substring(origURL.indexOf('?')+1, origURL.length)

document.write('<frameset cols="20%,80%"><frame src="links.html" name="links"><frame src="' + contentURL + '" name="rechts"><\/frameset>')

</script>

</head>

</html>



- Läßt sich im IE nur online prüfen.

- Verhindert natürlich auch dann, daß die Seite außerhalb des Rahmens geöffnet wird, wenn der Betrachter das will. Es sei denn, JavaScript ist abgeschaltet.

- Verhindert auch, daß die Seite aus fremden Framesets herausgeboxt werden kann (No Frame 1-5).

- Offline ist es jedoch möglich.

Von
http://www.netmechanic.com/



Frameset-alert



Frameset - Alert

(falls das Frame irgendwo als Unterseite geladen wird )

<script language = "javaScript">
<!--
if (top. frames. length == 0)
{
alert ("Diese Seite ist Teil eines Framesets. Sie finden unsere Startseite unter... ");
}
// -->
</script>

oder ein Link:

<A HREF="" Target="_top">Raus aus dem Frame!</A>







No Frame 1



Frame - Killer I


<HEAD>

<script language="javascript"
type="text/javascript">
<!-- Hide script from older browsers
if (top!=self)

{top.location=self.location;}

// mit einer Verzögerung von 0,5 sek:
// {window.setTimeout("top.location=self.location", 500);}

// -->
</script>



Setzt sich selbst ins obere Fenster, sprengt ein Frameset.




No Frame 1b



Frame - Killer II



<script language="javascript"
type="text/javascript">
<!-- Hide script from older browsers
if (top==self)
{self.location.href = "frames.html";}
//-->
</script>

oder

<script language="JavaScript">
<!--
if (top == self) self.location.href = "frames.html";
// -->
</script>

Dieses Script überprüft, ob die einzelne Seite außerhalb des Framesets geladen worden ist, . wenn ja, lädt der Browser das stattdessen das Frameset 'frames.html'



<script language="javascript"
type="text/javascript">
<!-- Hide script from older browsers
if (top!=self)
{top.location = self.location;}
//-->
</script>

Dieses Script überprüft, ob die aktuelle Seite zuoberst in der Browser- Hierarchie ist. Wenn nicht, dann setzt sie die Seite auf die höchste Ebene und zeigt sie als die aktuelle Seite im Browser an.

Achtung! Immer hinter "if" ein Leerzeichen; sonst Fehler in Netscape








No Frame 1c



Frame - Killer III


<script language="JavaScript">
<!--
if (parent.frames.length>=1) {
window.top.location.href="
http://...meine.Seite";
}
//-->
</script>


Wenn die Seite aufgerufen wird, wird überprüft, ob ein Frameset vorhanden ist. Wenn ja, wird die Seite darübergelegt.

Alternativ:

<script language="JavaScript">
<!--
if (top == self)
{
alert ("Diese Seite ist Teil eines Framesets");
top.location.href="http://...mein.Frameset";
}
// -->
</script>




No Frame 2



Frame - Vollbildzwang I

Verhindert die Darstellung eigener Seiten in einem Frame ( Erzwingt Vollbild )

<HEAD>
.
.
<SCRIPT LANGUAGE= "Java Script">
<!--
if (top.frames.length > 0)
top.location.href=self.location.href;
// -->
</SCRIPT>

</HEAD>


Achtung! Immer hinter "if" ein Leerzeichen; sonst Fehler in Netscape







No Frame 3



Frame - Vollbildzwang II - Opera

Verweis <click> mit Java aufrufen!

Aus: Stefan Münz 8;

wg. Opera, aber auch sonst interessant wg. Verweis aufrufen

<html> <head> <title>Seitenanzeige in Frames verhindern</title>
<script type="text/javascript">
<!-- if(top!=self)
{
if (window.opera) window.onload=opera_befreien;
else top.location=self.location;
}

function opera_befreien()
{
document.links['befreien'].click();
}
//--> </script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">
<a name="befreien" href="seitenanzeige_opera.htm" target="_top"></a>
<h1>Keine Chance für Schaufenster-Anbieter!</h1>
</body>
</html>

Erläuterung:

Bei Opera 5.12 haben Sie keinen Zugriff auf die oberste Fensterebene 'top', wenn sich diese nicht zur eigenen Domain gehört. Sie können jedoch über einen Umweg auch diesen Browser dazu veranlassen, das Frameset zu sprengen. Dazu müssen Sie dafür sorgen, dass ein Verweis mit der Eigenschaft target="_top" angeklickt wird:


Innerhalb der Seite befindet sich ein unsichtbarer Verweis (Verweis ohne Verweistext) namens befreien. Dieser Verweis besitzt als Zielfenster _top und als Verweisziel die Seite selbst. Wird nun beim Laden der Seite festgestellt, dass diese sich innerhalb eines fremden Framesets befindet, so verwenden alle Browser außer Opera das oben beschriebene Script. In Opera dagegen wird lediglich der Eventhandler onload initialisiert. Der Aufruf window.onload=opera_befreien hat die Aufgabe, nach dem Laden der Seite die Funktion opera_befreien() aufzurufen. Innerhalb der Funktion passiert nichts weiter, als dass der Verweis mit der Methode click() angeklickt wird. Diese undokumentierte Methode funktioniert mit allen Identifikationseinstellungen von Opera. Das Verweisziel lädt sich in die oberste Fensterebene und sprengt das Frameset.





No Frame 4



Frame - Vollbildzwang III


<SCRIPT LANGUAGE="JavaScript">
<!--
function bild()
{
if (window.name!="ergebnisfenster")
{
if (this.document==top.document ||
top.location.host != this.location.host)
{
window.location.replace("frames.html");
}
}
}
// --->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">

<BODY OnLoad="bild()" ...>

Auch nicht schlecht!

---

Variante:

<SCRIPT LANGUAGE="JavaScript">
<!--
function b()
{
if (window.name!="ergebnisfenster")
{
Frameset = window.open("frames.html", "_parent");
Frameset.focus();
}
}
// --->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">

<BODY OnLoad="bild()" ...>




Navigation und Fenster

Drop-down Menü 1



OnClick Drop-down Menü 1

(size="x" mach aus einem Dropdown-Feld ein Auswahlfeld!)


<script language="Javascript">

<!--
sprungziel= new Array(3)
sprungziel[0]="goethe.htm"
sprungziel[1]="schiller.htm"
sprungziel[2]="menu1.htm"

function auswert(form)
{
location=sprungziel[form.auswahl.selectedIndex]
}

//-->
</script>


-----------

<P>

<FORM name="form" action="">
<select name="auswahl" size="3" onchange="auswert(form);" >
<option>Goethe</option>
<option>Schiller</option>
<option>Menü</option>
</select>
</FORM>

<P>



Drop-down Menü 2



OnClick Drop-down Menü 2


<select id="xyz-quickNav" name="xyz-quickNav" onchange="window.location.href=this.options[this.selectedIndex].value">
<option value="Diese Seite">Select a page..</option>
<option value="
Home">http://www.xyz.com/">Home Page</option>
<option value="xyz">http://support.xyz.com/">xyz Support</option>
<option value="FREE">http://www.xyz.com/webtools/">FREE Web Tools</option>
<option value="Web">http://www.xyz.com/webhosting/">Web Hosting</option>
</select>


von http://www.bravenet.com/



WindowOpen



WindowOpen


Die allgemeine Syntax der Methode "window.open()" (öffnet ein extra - Fenster) ist:

fenster= window.open("url [der anzuzeigenden Seite]","ziel [=Name des Fensters im TARGET] ","merkmale[optional: -height,width- in pixel sowie -status, resizable- u.a.m ]")

var new_win=window.open(
http://www.irgendwo.de,"Neues Fenster",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=x,height=y',screenX=0,screenY=0');

// Statt 'screenX=0,screenY=0, besser
// left=0,top=0,






Neues Fenster in 30 Sek



Neues Fenster in 30 Sek

Internet Magazin 1-2000

<script language="Javascript">

function fenster_auf()
{
window.open('start.htm', 'screenX=0,screenY=0,toolbar=yes,scrollbars=yes,resizable=no,fullscreen=no,status=yes,width=200,height=40');

// Statt 'screenX=0,screenY=0, besser
// left=0,top=0,


// Zusatz: Verdeckt
// Focussiert Hauptfenster

self.focus();
}
</script>

<Body onLoad="timerOne=window.setTimeout('fenster_auf()',30000);" BGCOLOR="#000000" TEXT="#f000f0" LINK="#0000ff" VLINK="#ff00ff">

öffnet nach 30 Sekunden ein neues Browserfenster im Fenster





Öffnet erst nach Bestätigung



Öffnet nach Bestätigung

prompt() läßt Dialog-Text erscheinen: "OK" und "Abbrechen"
confirm() ergibt Dialog- Box OK / Abbrechen


<html>
<head>
<title>Oh Oh</title>

<script type="text/javascript">
<!--
Check = prompt("Geben Sie Ihr Passwort fuer diese Seite ein",""); if(Check == "lalala") alert("Sie haben Zutritt");

mutig = confirm("Wollen Sie sich das wirklich antun?");
if (mutig = = true)
location.href="ferkel.htm"
//-->
</script>

</head>

<body>

Öffnet bei Bestätigung die neue Seite 'ferkel.htm'



Kürzer:

if (confirm('Soll das Frameset geladen werden ?'))
{top.location.href=yxz};




Fenster automatisch schließen



Popup- Fenster automatisch schließen:


Die Angabe:

<Body OnUnload="extramenu.window.close();" Onload="extra...

schließt das Zusatzfenster, wenn das Hauptfenster geschlossen wird.

Voraussetzung:
"extramenu" ist als Variable bekannt durch

function Fensterauf()
extramenu = window.open(url, ziel,...)


- - - -

Oder, wenn vorgesehen:

function menuweg()
if (window.extramenu)
{
window.extramenu.focus();
window.extramenu.close();
}

<Body OnUnload="menuweg();" Onload="extra...


*********

Die Angabe:

<Body OnBlur="self.close();"...

im Extrafenster schließt dieses, sobald es verlassen wird.



<Body onLoad="setTimeout('self.close();',30000);"

Schließt das Fenster nach 30 Sekunden.



<A HREF="javascript:window.close();" >Fenster zu!</A>


schließt ein Fenster manuell.

---------

function HauptfensterZu()
{
if (opener != null)
{
if(opener.closed == false)
{
opener.focus();
opener.close();
}
}
}

Schließt das Hauptfenster, wenn es noch offen ist

---------

[dependent= yes|no gilt nur für Netscape4]

Achtung: Für Netscape4 gilt OPENER nur, wenn das Fenster auch mit OPEN geöffnet wurde; im IE auch mit HREF.


----------

Damit ein Zusatzfenster nicht alleine geladen wird, gilt folgendes:
(Fängt die Fehlermeldung "Ist null oder kein Objekt" ab)

// Self Close

if(! window.opener)
{
// alert ("No Opener")
stoperror();
// self.close();
}



// Fehlermeldung

function stoperror()
{alert("Allgemeiner Fehler. Bezugsseite nicht gefunden.\n\nEntweder ein Programmfehler, oder das Fenster\nwurde nicht von der Bezugsseite geladen.\n\nBitte in diesem Fall das Fenster schließen und von der Hauptseite aus neu laden.");
return true;
self.close();
}

// To test break below:
window.onerror=stoperror;

Achtung: stoperror immer VOR das abzufangende Script setzen!


---




Popup und Target



Popup + Target - Öffnet ein neues Fenster mit und ohne JavaScript

Internet Magazin 10/01

<a href="seite.htm" target="_blank"
onClick=window.open('seite.htm','fenster','width=600,height=450'); return
false">Link</a>





Popup ohne Target



<a href="javascript:void(0)" onclick="window.open('
http://www.blah.com',blah.com','width=200,height=200')">
Öffne ein neues Fenster
</a>




Neues Fenster mit und ohne JavaScript



Öffnet ein neues Fenster mit und ohne JavaScript:

<a href="seite.htm" target="fenster" onClick=window.open('seite.htm','fenster','width=600,height=450'); return false">Link</a>

<A HREF="hilfe.html" TARGET="Hilfe" onClick="window.open('hilfe.html','Hilfe', 'toolbar=no,location=no,scrolling=yes, directories=no,status=yes,menubar=no, scrollbars=yes,resizable=yes,width=480,height=480')"> Hilfe</A>

Wenn kein Frame gleichen Namens (hier "Hilfe") existiert, öffnet ein neues Fenster



Neues Fenster im selben Target



Neues Fenster im selben Target ( Ziel Neufenster)


<HEAD>

<script type="text/javascript">
<!--
function neufenster(url, ziel)
{
dasfocus = window.open(url, ziel, "width=400,height=250,top=50,left=50,resizable=yes,scrollbars=yes,menubar=yes,location=yes,toolbar=yes");
dasfocus.focus();
}
// (c) Hinrichs 2001
// Many thanks to Daniel Röhrig avistura.de
</script>

</HEAD>

Wird angesprochen durch:

<P>
<BR>
<B><A HREF="
http://www.xyz.de/" ONCLICK="neufenster('http://www. xyz.de/', 'spiegel')" TARGET="spiegel" onmouseover="window.status=' &Ouml;ffnet xyz in einem neuen Fenster ';return true;"
onmouseout="window.status=''"> xyz </A> <BR>
<BR>





Navigation im Extrafenster



Navigation im Extrafenster

Navigationsleiste als Fernbedienung im Extrafenster öffnen lassen mit einfachem Target plus Größenangabe. Siehe dazu
http://www.swatch.com

<a href="seite.htm" target="_blank"
onClick=window.open('seite.htm','fenster','width=600,height=450'); return
false">Link</a>

Die Angabe:

<Body onBlur="self.focus();" ...

in der Navigationsseite verhindert, daß sie vom Hautfenster verdeckt wird.

Achtung!

Target="NAME" - öffnet alle Seiten im Fenster NAME - nach dem ersten Öffnen aber versteckt (kein Focus).

Target="_blank" - öffnet Fenster NICHT mehr versteckt


Weiterführend:

http://www.erleuchtet.gmxhome.de/hilfe/fensternavi2.txt

http://www.erleuchtet.gmxhome.de/fw/fw-index.htm#FN




Rückwärts zählende Uhr zur Weiterleitung



Rückwärts zählende Uhr zur Weiterleitung

<HTML>
<HEAD>

<META HTTP-EQUIV="Refresh" CONTENT="10; URL=
">http://members.tripod.com/1.htm">
<SCRIPT LANGUAGE="JavaScript">
<!--
var start=new Date();
start=Date.parse(start)/1000;
var counts=10;
window.setTimeout('CountDown()',100);
function CountDown(){
var now=new Date();
now=Date.parse(now)/1000;
var x=parseInt(counts-(now-start),10);
document.form1.clock.value = x;
if(x>0){
timerID=setTimeout("CountDown()", 100)
}else{
location.href="http://members.tripod.com/1.htm"
}
}
//-->
</SCRIPT>
</HEAD> <BODY BGCOLOR="#6699CC"> <CENTER>
<H1>R&uuml;ckw&auml;rts z&auml;hlende Uhr zur Weiterleitung</H1>
<FORM NAME="form1">
<P>
<FONT SIZE="3" FACE="Geneva, Arial" COLOR="#FF0000"> <B> You are being redirected in </B> <INPUT TYPE="text" NAME="clock" SIZE="2" VALUE="10"> <B> seconds. <BR>
If you don't want to wait click <A HREF="http://members.tripod.com/1.htm" onMouseOver="window.status='Click here to continue'; return true"> here</A> . </B> </FONT> <BR>
</FORM>
</BODY> </HTML>





Zufällige Hintergrundfarbe



Zufällige Hintergrundfarbe

<HEAD>

<script language="JavaScript">

<!-- hide script contents from old browsers
function RandomNumber() {
today = new Date();
num= Math.abs(today.getTime())*191;
return 255-(num%80);
}
// end hiding contents from old browsers -->

</script>

</HEAD>

<BODY BGCOLOR=#ffffff>

<script language="JavaScript">

<!-- hide script contents from old browsers
document.bgColor = (RandomNumber()*256*256)+(RandomNumber()*256)+RandomNumber();
window.refresh;
// end hiding contents from old browsers -->

</script>
<P>
<I>(Reload to get another background color)</I>
<P>





Scrollen ohne vorherigen Klick in Frame



Scrollen ohne vorherigen Klick in Frame- Seiten

<body... onload="self.focus();">
verhindert, daß man erst in den Frame klicken muß, um ihn zu scrollen
(Internet Magazin 6/01)





Vorwärts mit Formular



Vorwärts mit Formular

<FORM NAME="buttonbar">
<INPUT TYPE="button" VALUE="Back" onClick="history.back();break;">
<INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.htm'">
<INPUT TYPE="button" VALUE="Next" onCLick="history.forward();break;">
</FORM>

Wichtig scheint das 'break'; (grundsätzlich bei 'location.href' oder 'history.back / forward')



Vor - Zurück



<form method="post">

<input type="button" value="Zurueck"
onclick="history.go(-1);return true;">

<input type="button" value="Vorwaerts"
onclick="history.go(1);return true;">

</form>


-------

JavaScript:history.go(0)

ruft die selbe Seite noch einmal auf (reload, aktualisieren)

Javascript - Verweise



Verweis ohne Ziel, nur zum Ausführen einer Javascript-Funktion:

------


<A HREF="javascript:history.back()">

(Eine Seite Zurück)

Hier OHNE 'Onclick'

Nur "javascript:" (bei Verweisen)

Nach JavaScript (Netscape) erlaubt in folgenden HTML-Tags:
<a>
<area>

---

Reine JavaScript - Verweise sind zwar aktiv, wandeln den Mauszeiger aber nicht in die Hand um (zeigen ihn nicht an) und läßt auch jeden anderen Hinweis auf einen Link vermissen (nicht unterstrichen):


"<B><A OnClick="javascript:self.location.href='weiter.htm' ;"><FONT COLOR=#0000ff>

WEITER

</FONT></A></B>"



*****

Ähnlicher Effekt mit CSS:
(verhindert nur den Unterstrich)

"<B><A STYLE="text-decoration:none;" HREF="#weiter"><FONT COLOR=#0000ff>

WEITER

</FONT></A></B>"



oder für die ganze Seite mit


<style type="text/css">
<!--
a { text-decoration: none}
-->
</style>
</HEAD>



Tabellenfeld-Verweis




Tabellenfeld - Javascript - Verweise

<P>
<CENTER>
<TABLE BORDER CELLPADDING="2" ALIGN="Center">
<TR>
<TD onClick="javascript:self.location.href='#Here';" >Javascript-Tabellenfeld-Link</TD>
<TD onClick="javascript:self.location.href='#Here';" ><BR>
&nbsp;Click here&nbsp;tab<BR>
&nbsp;</TD>
</TR>
</TABLE>
</CENTER>
<P>

--------

<BR>
<BR>
<A NAME="Here">Go Here</A> </B>
</BODY></HTML>


Internet Magazin 6/05 S. 31 ff



JavaScript Weiterleitung



JavaScript Weiterleitung


<SCRIPT LANGUAGE="Javascript">
<!--
if (top == self) {
document.write('<meta HTTP-EQUIV=refresh content="0; url=index.html">');
top.location = "index.html";
document.write('<frameset></frameset><noframes>');
}
//-->
</SCRIPT>






Ein (Frame-) Fenster Zurück



Ein Fenster Zurück


Öffnet das letzte FENSTER erneut:

<a href="javascript:history.back()"> < Zurueck </a><br>

oder:

<INPUT TYPE="button" VALUE=" < Zurueck "onClick="history.back()">


Mit (default)- URL kombinieren:

<A Href="x.htm" onClick="history.back()"> Zurück </A>

geht nicht (es öffnet im Zweifelsfall x.htm), Widerspruch; Besser if- Funktion bauen.

Evtl. : <a href="javascript:history.back()"> < Zurueck </a><NOscript>
<A Href="untitled1.html"> HIER </A></NOscript>


<a href="javascript:history.go(-2)"> < 2Zurueck </a><br>


--------

window.back()

Entspricht bei normalen Seiten einem Klick auf den "Zurück"-Button. Bei Frames wird jedoch - anders als bei history.back() - die letzte besuchte Seite aufgerufen, die NICHT zum Frame-Set gehörte.

<a href="javascript:window.back();">Zurück</a>




Frame - Steuerung durch Buttons



Frame - Steuerung durch Buttons -
genial und nicht von mir- aber verändert.


FrameSet.html

<HTML>
<HEAD>
<TITLE>
</TITLE>
</HEAD>

<FRAMESET ROWS="*,32" name="ButtonFrame" border="4">
<FRAMESET cols="30%, 70%" name="SeitenFrame" border="4">
<FRAME SRC="menu.htm" NAME="links" MARGINWIDTH="10" MARGINHEIGHT="14">
<FRAME SRC="index.htm" NAME="rechts" MARGINWIDTH="10" MARGINHEIGHT="14">
</FRAMESET>
<FRAME SRC="schalter.htm" NAME="unten" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="No" NORESIZE>
</FRAMESET>

<NOFRAMES>
<BODY bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<P>
Ihr Browser kann leider keine Frames darstellen.
</BODY></NOFRAMES></HTML>




SchalterSeite.html

<HTML>
<BODY BGCOLOR="#ff0000">
<FORM>
<CENTER>
<TABLE BORDER CELLPADDING="2" ALIGN="Center">
<TR ALIGN="Center">
<TD ALIGN="Center">
<INPUT TYPE=reset VALUE="Navigationsmen&uuml; Verbergen" OnClick="ResizeFrame2();"></TD>
<TD ALIGN="Center">
<INPUT TYPE=reset VALUE="Navigationsmen&uuml; Anzeigen" OnClick="ResizeFrame1();"></TD>
</TR>
</TABLE>
</CENTER>
</FORM>
<P ALIGN=Center>
<SCRIPT TYPE="text/javascript" LANGUAGE="javascript">
<!--

function ResizeFrame1()
{
parent.frames.SeitenFrame.cols = "27%,*";
}


function ResizeFrame2()
{
parent.frames.SeitenFrame.cols = "0,*";
}


//--> </SCRIPT>
</BODY></HTML>



- - - - - - - - - -



- Man könnte versuchen die Zeile:

parent.frames.SeitenFrame.cols =

- jeweils zu ersetzen durch: (mit der ID des FRAMESET!!)

parent.document.getElementById("SeitenFrame").cols = "0,*";

- Wenn im Frameset (!) definiert wurde:

<FRAMESET cols="30%, 70%" border="4" id="SeitenFrame" name="SeitenFrame" ...

- - -

Im Netscape 4 geht es nicht; er kann Framesets nicht erkennen, nur Frames.


- Beispielsweise hier zu finden:

http://www.erleuchtet.gmxhome.de/Script-DB/Script-Datenbank.htm

oder hier:

http://www.erleuchtet.gmxhome.de/fw/fw-index.htm#CCTurbo



- - - - - - - - - -


Dann lassen sich die Größen von Frames durch schieres Anklicken verändern, wenn das FRAMSET die ID "FRAMSET" erhält:

<FRAMESET rows="30%,*" border="4" id="FRAMSET" name="FRAMSET" ...

In einem Frame definieren:


<SCRIPT TYPE="text/javascript" LANGUAGE="javascript">
<!--

function ResizeFrame1()
{
parent.document.getElementById("FRAMSET").rows = "80,*";
}

//--> </SCRIPT>


</HEAD>
<BODY BGCOLOR="#ffffff" OnClick="ResizeFrame1();" >

Im anderen Frame entsprechend.


- - -

- Es geht auch in Stufen:


var Vorlage = 30;
var Mehr = 10;
var Abstand = Vorlage;

function ResizeFrame1()
{

if ((Abstand) && (Vorlage <= Abstand) && ((Abstand + Mehr) < 100))
{
Abstand = Abstand + Mehr;
}
else Abstand = Vorlage;

// alert(Abstand);

parent.document.getElementById("FS").rows = Abstand + "%,*";
}


Das Gegenskript muß dann Abstand = Vorlage - 1; liefern


- - -


- GGf. die Frames auf NORESIZE stellen, um Konflikte zu minimieren.

- ACHTUNG! U.U. lassen sich Verweise auf der Seite nicht mehr anklicken!




Zweiten Frame durch ersten öffnen



if (top != self)
// document.write(' Titel: ');
// document.write(parent.page.document.title);
{
if ((parent.seite.document.title == "Inhalt") && (parent.menue.document.title != "Das Menue"))
// Browser Security: muß beide Titel erkennen
{
// alert('Titel gefunden, wechsle Seite.');
parent.menue.location.href="menue.htm";

}
}





Onload umgehen



Manchmal möchte man, daß eine Seite, NACHDEM sie geladen wurde, einen bestimmten Befehl ausführt, z.B.an einen bestimmten Ort springt.

Das geht einerseits mit dem <BODY OnLoad...> - Befehl, aber das führt manchmal zu Konflikten im Ablauf.

(OnLoad tritt erst nach dem vollständigen Laden der Seite in Kraft!)

Eine Lösung ist es, diesen Befehl an das Ende der Seite zu stellen:

<P>

<A NAME="Oben">TEXT</A>

<P>

TEXT

<P>

<script language="javascript"
type="text/javascript">
<!--
function get()
{ window.location.hash='Oben';break;
}

get();
// oder
window.location.hash='Oben';break;
// -->
</script>

</BODY></HTML>


Achtung:
- window.location.hash scheint die History-Funktion des MSIE zu stören
- wichtig scheint auch das 'break'; (grundsätzlich bei 'location.href' oder 'history.back / forward')



Am Sprungziel Öffnen I



Am Sprungziel Öffnen I


<script language="javascript"
type="text/javascript">

<!-- Hide script from older browsers
if (top == self)
{window.location.hash='OBEN';break;}
// -->



Zieht Seiten, wenn sie außerhalb eines Rahmens geladen werden, bis zum Anker namens OBEN hoch.


ACHTUNG: braucht immer einen eigenen Auslöser! Nicht mit reload kombinieren!



Am Sprungziel Öffnen II



Am Sprungziel Öffnen II


Frametop


<P>
<SCRIPT language="javascript">
<!--

if((self.location.hash == "") && (top.document.title == "TITEL"
))
{ self.location.hash = "FRAMETOP";break; }

// (c) Hinrichs 2001
// Many thanks to Daniel Röhrig avistura.de
//--> </SCRIPT>

</BODY></HTML>

Zieht Seiten, wenn sie außerhalb eines Rahmens mit spezifiziertem Titel geladen werden, bis zum Anker namens FRAMETOP hoch, so vorhanden. Muß vor "</ body >" geschrieben werden.



ACHTUNG: braucht immer einen eigenen Auslöser! Nicht mit reload kombinieren!



Am Sprungziel Öffnen III



Am Sprungziel Öffnen III
stoperror immer zuerst

<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--
function stoperror()
{return true}
window.onerror=stoperror
-->
</SCRIPT>

<script language="javascript"
type="text/javascript">
<!--
function gehezu()
{window.location.hash='Hallo';break;}
// -->
</script>


</HEAD>

<BODY BGCOLOR="#ffffff" Link=black onLoad="gehezu()">


Öffnet Seiten am Anker "Hallo"



ACHTUNG: braucht immer einen eigenen Auslöser! Nicht mit reload kombinieren!

Wichtig scheint auch das 'break'; (grundsätzlich bei 'location.href' oder 'history.back / forward')


Automatisch die Seite neu laden I



Zwangsweise die Seite neu Laden / no cache

1. <meta http-equiv="pragma" content="no-cache">

2. Mit dem META REFRESH - Tag, auf die eigene Seite gelegt, erzwingt man laufend automatische Updates des Inhaltes, z. B. von Webcam - Bildern.

3. Abstellen der Cache - Funktion ( Seite wird jedesmal neu geladen ): < Meta http-equiv="expires" content="0" > Zwingt den Browser, das Dokument jedesmal frisch vom Server zu laden.


Genauer:

Internet Magazin 10/02

Brower-Cache umgehen

Mit CONTENT="xx" kann man dem Browser mitteilen, nach wie vielen Sekunden er die Seite aus dem Web statt aus dem Cache laden soll."xx" müssen Sie dabei durch die jeweils gewünschte Sekundenzahl ersetzen. Wollen Sie also erreichen, dass die Seite nie aus dem Cache geladen wird, setzen Sie für "xx" "0" ein.

Die folgenden, weiterhin relevanten Methoden sprechen in erster Linie Proxy-Server an und müssen ebenfalls zwischen <HEAD> und </HEAD> platziert werden:

<META HTTP-EQUIV="pragma"
content="no-cache">
<META HTTP-EQUIV="cache-control"
content="private">
<META HTTP-EQUIV="Last-Modified"
CONTENT="ein Datum in der
Vergangenheit">

Eine umfangreiche Abhandlung zu diesem Thema finden Sie auch unter
www. mnot.net/cache_docs/.

Hilfreiche Erläuterungen gibt's außerdem in Stefan Münz' SelfHTML (http://de.selfhtml.org/html/kopfdaten/).





Automatisch die Seite neu laden II



Die Seite soll sich bei Aufruf genau ein Mal selber neu laden (aktualisieren):
Das geht über den Fensternamen und ein Formular



<HTML>
<HEAD>
<TITLE>Nur 1x sich selbst neu ladende Seite</TITLE>

<SCRIPT language="javascript" type="text/javascript">

function NamenAendern()
{window.name = "NeuerName"; }

function EinmalLaden()
{
if
(window.name == "NeuerName")
{
location.reload();
window.name = "AlterName";
}
}

</SCRIPT>

</HEAD>
<BODY Onload="EinmalLaden();" >
<FORM... Onsubmit="NamenAendern();>

<?PHP
...Anweisung
?>

</FORM>
</BODY></HTML>



---

location.reload=true;
statt
location.reload();

holt die Seite vom Server statt vielleicht aus dem Cache.



Automatisch die Seite neu laden III



Diese Seite lädt sich bei Aufruf automatisch genau ein Mal selber neu (aktualisiert sich selbst); und zwar auch dann, wenn durch Zurück-bewegen im Browser das Fenster einfach nur wieder erreicht wird. Auch hier wird das Argument im Fensternamen gespeichert und dieser anschließend wieder zurückgesetzt. Ausgenutzt wird die Tatsache, daß minus mal minus plus ergibt, plus mal minus aber minus (Flip-Flop). Ansonsten würde sich die Seite unendlich oft neu laden.


<HTML>
<HEAD>
<TITLE>Automatisch nur 1x sich selbst neu ladende Seite</TITLE>

<SCRIPT language="javascript" type="text/javascript">

function Selbstladen()
{

var Schalter;
if ((Schalter != 1) || (Schalter != (-1)))
{var Schalter = 1;}

if (window.name == "A1")
{var Schalter = 1;}

if (window.name == "A2")
{var Schalter = (-1);}

// alert ("Load " + Schalter);

if (window.name == "A2")
{
location.replace(self.location);
// self.location.reload;
alert ("reload");
}
else
{alert ("NO reload");}

var Schalter = eval(-(Schalter));
// alert ("Schalter: " + Schalter);

if (Schalter == 1)
{window.name = "A1";}

if (Schalter == (-1))
{window.name = "A2";}

alert ("Resultat Fenstername: " +name);

}

</SCRIPT>

</HEAD>
<BODY Onload="Selbstladen();" >

---

location.reload=true;
statt
location.reload();

holt die Seite vom Server statt vielleicht aus dem Cache.




Automatisch die letzte Seite wieder laden






Automatisch die letzte Seite wieder laden
- nach zwei Sekunden ( = 1000ms ) :



setTimeout ("history.back()",1000);








Vermischtes (JavaScript)

JavaScript-Aufruf




Ruft eine externe JavaScript- Datei auf:


<script language="JavaScript" type="text/javascript" src="xy.js"></script>

</HEAD>










Java Script Probleme



Java Script

a) Bei allen Bilder, die in Seiten mit JavaScript eingebunden werden, müssen immer Angaben zu Heigth und Width vorhanden sein! Ansonsten kann es zu Problemen mit dem Script kommen.

b) Auch wenn es nicht mehr üblich ist: Java Script Immer mit <!-- // --> auskommentieren!

<SCRIPT language="javascript">
<!--
....
// -->
</SCRIPT>

sonst Fehlermeldung.

c) Achtung! Immer hinter "if" ein Leerzeichen; sonst Fehler in Netscape


d) Ein Zeilenumbruch beendet in Javascript eine Codezeile. Fehler!


ACHTUNG! JEDER Fehler in einer JavaScript Datei blockiert alle folgende.


--------------


Bei dem Aufbau einer Seite mit Java Script (oder PHP) werden die Funktionen grundsätzlich in der Reihenfolge ihres Erscheinens abgearbeitet.


Eine JavaScript-Anweisung mit 'document.write ("...")' beim Verlassen einer Seite wird GRUNDsätzlich in die oder eine neue Seite geschrieben, nie in die alte! Will man den Text auf einer Seite ändern, mit innerHTML arbeiten:

Vor den zu ändernden Text:

Var neu = "neuer text";
function Neu ()
{ document.all.Absatz.innerHTML = Neu; }

<p id="Absatz">Text</p>

Danach hier Funktionsaufruf.

- - -

"Wenn Sie innerhalb von Funktionen Variablen ohne das Schlüsselwort var deklarieren, dann sind diese Variablen global."

Achtung: Namen von Variablen und Elementen sollten nur einmal auf der Seite definiert werden! Sonst ist das Verhalten von JavaScript schwer vorherzusehen.





Gemischte JS-Ausgabe stückeln



Manchmal ist es nützlich, die Ausgabe einer HTML-Zeile in Java Script zu stückeln, Z.B. wenn ein Wert an eine Bedingung geknüpft wird:


<SCRIPT type="text/javascript" language="JavaScript">
<!--

var Passwort;

document.write('\<INPUT TYPE\=\"text\" NAME\=\"PW\" VALUE\=\"');

if (Passwort != null)
{document.write(Passwort);}

document.write('\" MAXLENGTH\=\"40\"\>');

// -->
</SCRIPT>


---

Ist im Prinzip dasselbe wie:


<SCRIPT type="text/javascript" language="JavaScript">
<!--

var Passwort;

document.write('\<INPUT TYPE\=\"text\" NAME\=\"PW\" VALUE\=\"' + Passwort + '\" MAXLENGTH\=\"40\"\>');

// -->
</SCRIPT>

- aber mit einer Bedingung.




JS-Array automatisch nummerieren



Statt

a[1] = "yxz" ;
a[2] = "yxz" ;
a[3] = "yxz" ;
a[4] = "yxz" ;
a[5] = "yxz" ;


Das Array einfach selber hochzählen lassen:

i=0

a[i++] = "yxz" ;
a[i++] = "yxz" ;
a[i++] = "yxz" ;
a[i++] = "yxz" ;
a[i++] = "yxz" ;

(Aus: Internet Magazin)


Siehe auch:

"Verweise Zusammenfassen"





Verweise Zusammenfassen



Zählt und gibt die Verweise aus:

----------

<BR>
<P>
<U>Wie viele Verweise gibt es auf der Seite</U>? &nbsp; <B>
<SCRIPT LANGUAGE="Javascript">
<!--
document.write(document.links.length);
//--> </SCRIPT> <BR>
</B><BR>
<U>Welche Verweise gibt es auf der Seite</U>?
<P>
<B> <SCRIPT LANGUAGE="Javascript">
<!--
a = document.links.length;
for ( i=0; i<a; i++ )
{
document.write(document.links[i]);

document.write(" &nbsp; ");

document.write("<A HREF=\"");
document.write(document.links[i]);
document.write("\">");
document.write("Link" + (i+1));
document.write("</A>");

document.write("<BR>");
}
//--> </SCRIPT> <BR>
<BR>



Internet Magazin 6/05 S. 31 ff




JS Indexnummern zuordnen



Indexnummern auslesen

JavaScript zählt automatisch alle HTML-Elemente durch und vergibt ihnen Indexnummern ab 0. Dadurch lassen sich einzelne Elemente mit ihrer Indexnummer ansprechen - nur welche ist das?

Folgendes Script liest die Indexnummern beliebiger HTML-Elemente einer
Seite dynamisch aus und ordnet ihnen diese zu, so daß darauf
zugegriffen werden kann, auch wenn der Aufbau der Seite
nachträglich verändert wird.

<HTML>
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--

// Bezieht sich hier auf alle A-Tags

function Indexzuordnen()
{
ElementAnzahl = document.getElementsByTagName("a").length;
alert ('Die Zahl der Verweise ist: ' + ElementAnzahl);
for (var i = 0; i < ElementAnzahl; i++)
{document.getElementsByTagName("a")[i].IN = i;}
}

function Anzeigen(IN)
{
// alert("Meine Indexnummer ist: " + IN);
var MeinIndex = document.getElementsByTagName("a")[IN];
if (MeinIndex.title)
{window.status = 'TITEL ' + MeinIndex.IN + ' ist: ' + MeinIndex.title;}
else
{window.status = '';}
// Weitere Anweisungen;
}

// -->
</SCRIPT>

</HEAD>

<BODY OnLoad="Indexzuordnen();">
<P>
<A HREF="hilfe.htm" Title="Zur Hilfe"
onMouseOver="Anzeigen(this.IN); return true;" onFocus="Anzeigen(this.IN);
return false;">Hilfe</A>
<P>
<A href="impressum.htm" Title="Zum Impressum"
onMouseOver="Anzeigen(this.IN); return true;" onFocus="Anzeigen(this.IN);
return false;">Impressum</A>
<P>

</BODY></HTML>

Neben dem Titel können in allen derartig ansprechbaren HTML-Elementen (d.h. auch DIV-Bereiche!) auch Id, Name oder andere Attribute abgefragt und jeweils mit allgemeingültigen Anweisungen verknüpft werden.

Allerdings müssen die verschiedenen HTML-Elemente getrennt von einander behandelt werden, um ein Überschneiden der ID-Nummern zu vermeiden.

---



Besuchte Links in JS prüfen



Manchmal möchte man in JavaScript feststellen, ob ein Link (Verweis) bereits besucht wurde oder nicht.

Dieses läßt sich über die unterschiedliche Link-Farbe feststellen.

Zuerst werden den Links in CSS(!) unterschiedliche Farben zugeordnet:

<style type="text/css">
a:link { color:blue; }
a:visited { color:purple; }
</style>

Dann wird die Link-Farbe in JS abgefragt:


for (var i = 0; i < LinkAnzahl; i++)
{

// Fehler abfangen:

LF=0;

if(window.getComputedStyle)
// (Mozilla)
{
LF= window.getComputedStyle(document.links[i],"" ).getPropertyValue("color");
}

else if(document.links[i].currentStyle)
// (MSIE)
{
LF=document.links[i].currentStyle.color;
}

// alert(LF);

if (LF == "purple" || LF.indexOf("128") > -1)
{

.. irgendwas

}




Ausblenden mit JS



<SCRIPT language="JavaScript" type="text/javascript">
<!--
// JS KOMMENTAR
if (Ausblenden == "ja")
{document.writeln("\<!--");}
// -->
</SCRIPT>


Dieser Bereich wird ausgeblendet, wenn der Parameter "Ausblenden" den Wert "ja" erhalten hat. Allerdings nur ausgeblendet, d.h. PHP-Anweisungen arbeiten noch.

Formular-Sendebuttons z. B. aber können so ausgeblendet werden.


Allerdings nicht, wenn sich dazwischen noch ein weiteres JavaScript befindet!


<!-- Ende JS KOMMENTAR / Notwendig wegen diesem End-Pfeil: -->


(Geht auch in PHP)




Variablen zählen



Manchmal möchte man wissen, wie viele Variablen einer bestimmten Art vorhanden sind.
Das geht allerdings nur innerhalb einer Funktion.

<P>

<SCRIPT language="JavaScript" type="text/javascript">

var Variable1 = "tralala";
var Variable2 = "dideldum";


for (var i=1; i<10; i++) // Die 10 ist nur eine Vorgabe; sie muß höher sein als die zu erwartende Zahl der Variablen

{
var Variablen = "Variable" + i;
var VariablenZ = self[Variablen];

if (!VariablenZ && (VariablenZ != undefined))
{alert("Ihr Browser kennt diese Funktion nicht");}

// else
// {alert("Die Variablen werden gezählt");}

if (VariablenZ != undefined)
{
document.writeln("\<BR\>");
document.writeln("Variable" + i + ": " + VariablenZ);
}

if (VariablenZ == undefined)
{
var zv = (i-1);
// alert(zv);
break;
}
}

document.writeln("\<BR\>\<BR\>");
document.writeln("Anzahl der Variablen: " + zv);

</SCRIPT>



JS-Umschalter



Schaltet den Wert "etwas" immer von "true" auf "false" und umgekehrt:

(Und ändert hier die Dimensionen einer Tabelle)


<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
var etwas = true;

function umschalten()
{
etwas = !etwas;

if (etwas)
{
document.getElementById("tabelle").style.width="100px";
document.getElementById("tabelle").style.height="100px";
document.getElementById("tabelle").style.fontSize="10px";
}

if (!etwas)
{
document.getElementById("tabelle").style.width="200px";
document.getElementById("tabelle").style.height="200px";
document.getElementById("tabelle").style.fontSize="20px";
}

}

// --> </SCRIPT>

<TITLE>JS-Tabellen-Anpassung</TITLE>

</HEAD>

<BODY>

<P>
<A HREF="javascript:umschalten()">ver&auml;ndern</A>
<P>

<TABLE BORDER CELLPADDING="2" id="tabelle" WIDTH="100">
<TR>
<TD>blah blah blah blah </TD>
<TD>blah blah blah blah </TD>
</TR>
<TR>
<TD>blah blah blah blah </TD>
<TD>blah blah blah blah </TD>
</TR>
</TABLE>

<P>

</BODY></HTML>


Aus: Internet Magazin 11/06




Javascript-Abfrage



Abfrage, ob Javascript aktiviert ist:

Die einfachste Möglichkeit ist, im head - Bereich einer Datei ohne Javascript eine kleines Script einzufügen:

<script language="javascript">
<!--
location.href="Seite mit Script.html"
//-->
</script>

Das Script wird vom Browser nur interpretiert, wenn der er Javascript beherrscht. Dann kann er auch dem Befehl, zur nächsten Seite zu wechseln folgen. Auf dieser Seite kann dann Javascript benutzt werden.

--------

Zum Selbsttest (Quelle unbekannt)

<p>Ihr WWW-Browser beherrscht folgende Scriptsprachen:<br>
<script language="JavaScript" type="text/javascript">
<!--
document.write("<br>JavaScript");
//-->
</script>
<script language="JScript" type="text/jscript">
<!--
document.write("<br>JScript");
//-->
</script>
<script language="VBScript" type="text/vbscript">
<!--
document.write "<br>VBScript"
//-->
</script></p>


Kein JavaScript



JavaScript - Fehlermeldung

-----------------
</HEAD>
<BODY bgcolor=#FFFFFF>
<NOSCRIPT>
<CENTER>
<font face="geneva,verdana,arial" size=+1 color=red>
Sie haben in Ihrem Browser die JavaScript - Unterst&uuml;tzung ausgeschaltet.<BR>
Diese Seiten sind ohne JavaScript nicht vollst&auml;ndig funktionsf&auml;hig!
</FONT>
</CENTER>
<BR>
</NOSCRIPT>







Bitte aktivieren Sie JavaScript



Bitte aktivieren Sie JavaScript!

<HEAD>
<NOSCRIPT>
<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=test-dateien/noscript.htm">
</NOSCRIPT>
</HEAD>

führt direkt auf eine NO - JS - Seite, dort:

Bitte aktivieren Sie JavaScript!
oder gehen Sie zu: ohne_javascript.htm




JavaScript schreibt JavaScript



<script language="javascript" type="text/javascript">
<!--
if(was auch immer)
{
document.write ('\<script language\=\"JavaScript\" type\=\"text\/javascript\" src\=\"http\:\/\/123.456.com\/blahblah.js\"\>\<\/script\>');
}
else
{
alert('Eben nicht.');
}
// -->
</script>



Java Script Rückwirkend



Ablauf:

Bei dem Aufbau einer Seite mit Java Script (oder PHP) werden die Funktionen grundsätzlich in der Reihenfolge ihres Erscheinens abgearbeitet.

Über CSS können aber sogar Element verändert werden, die VOR dem Befehl liegen:


if ((document.forms.Suche2.Gefunden.value != null) && (document.forms.Suche2.Gefunden.value == "nichts"))
{
document.forms.Suche1.button.style.visibility = 'hidden';
}

Läßt den den Eingabeknopf im Formblatt 'Suche 1' verschwinden

Wenn es nicht allzu wichtig ist, ist das simple Verstecken oft leichter als das tatsächliche rückwirkend Verschwindenlassen von einzelnen DIV "Elements" by ID.

---

Achtung: Allerdings werden JavaScript - Anweisungen bei jedem Öffnen der Seite neu ausgelesen!




Fehlermeldung ausschalten



Fehlermeldung durch fehlerhafte JavaScripts ausschalten

Beispielsweise um zu verhindern, daß der Browser wegen JavaScript- Tracker und Zähler versucht Online zu gehen, oder generell um den Browser bei Aufruffehlern nicht zu blockieren.

Vor(!) das jeweilige Script im Dateikopf.


<HEAD>
<script>
function stoperror()
{return true}
window.onerror=stoperror
</script>

....

geht, aber nur beim MICROSOFT Internet Explorer! Netscape läßt sich nicht beeinflussen, man muß ihn manuell auf "Offline" schalten. Oder die Scripte auslagern.

Aus Stefan Münz 8
Diese Art der Fehlerkontrolle können Sie für Netscape 4.x und MS Internet Explorer ab Version 4.x verwenden. Netscape 6 ist leider nicht in der Lage, die Parameter vollständig zu interpretieren. Er speichert jeweils im ersten Parameter das auslösende Eventobjekt. Opera 5.12 interpretiert den an das Fensterobjekt gebundenen Eventhandler window.onError nicht.




JavaScript-Suchformular



Finde Text - Suchfunktion

Offene HTML-Seiten direkt im Browser nach bestimmten Begriffen
durchsuchen:


1) Die in

http://www.erleuchtet.gmxhome.de/fw/alg/findetext.zip

beiliegende Datei 'finde2.js' in das Verzeichnis der zu
durchsuchenden Seiten kopieren


2) An gewünschter Stelle das Suchfeld in den zu durchsuchenden Seiten
einbinden mit:

<A HREF="javascript:LadeSeite();"> Suche mit JavaScript </A>
(wenn möglich)


3) Und direkt darunter das Feld öffnen mit

<SCRIPT language="JavaScript" type="text/javascript" src="finde2.js">
</SCRIPT>


Das Suchfeld funktioniert derzeit im AOL 4x und 6x, Netscape 4x und 7x, Mozilla und MS Internet Explorer. Es durchsucht die Hauptseite nach der eingegebenen Zeichenfolge

Bei frühen, ungepatchten Versionen des MS Internet Explorer 6 und 7 kann es bei großen Seiten zu Problemen kommen.


Fundort:


Das Script wurde übernommen und adaptiert von BRAVENET:

http://www.bravenet.com/reviews/coolscripts/index.php



Die neuesten Adaptionen befinden sich jeweils in

http://www.erleuchtet.gmxhome.de/hilfe/finde.js

und in den jeweiligen Menü - Seiten:

Rechte Maustaste auf [xy - Menü aufrufen] und "Ziel speichern unter..."




Bilderwechsel 0



Bildwechsel - Urscript

Hier der häufig und gerne verwendete Effekt mit dem Bild, welches wechselt, sobald die Maus darüber fährt.

Hier eine Variante, die auf allen Browsern funktionieren sollte.

<SCRIPT LANGUAGE="JavaScript">
<!--

/* Dies ist die Definition der Bildnamen und deren URL sowie gleichzeitig ein Preload, d.h. die Bilder werden von Vornherein geladen,
damit der MouseOver-Effekt auch flüssig von statten geht... */

if (document.images != null)
{
ohneMaus = new Image(152,110);
ohneMaus.src = "movehere.gif";
mitMaus = new Image(152,110);
mitMaus.src = "gotcha.gif";
}

/* Dies ist die eigentliche Funktion, die zum Wechseln der Bilder aufgerufen wird. */

function wechsleBild(bild,ziel)
{
if (document.images != null)
{
document.images[ziel].src = eval(bild +".src")
return true;
}
}

//-->
</SCRIPT>

<!-- ... -->

<!--Hier jetzt das Bild, welches zur Demonstration dient. Der Ort des Bildes, welches sich verändern soll, wird durch den Bildnamen
NAME="..." definiert. -->

<CENTER><A HREF=" ... "
onMouseOver="wechsleBild('mitMaus','katzmaus')"
onMouseOut="wechsleBild('ohneMaus','katzmaus')">
<IMG SRC="movehere.gif" ALT="" WIDTH=152 HEIGHT=110
BORDER=0 NAME="katzmaus"></A></CENTER>


von
http://www.editorial.de/tricky/




Bilderwechsel I



Grafik (Bilder-) wechsel onmouse

Achtung: Netscape 4 erkennt OnMouse nur im Verweis (HREF-) Tag, nicht im Bild (IMG-) Tag.


Im Head-Bereich:

<Script Language=JavaScript>
<!--

name1 = new Image();
name1.src= "bild1.gif";

name2 = new Image();
name2.src= "bild2.gif";
...

// [für jedes Bild]

// -->
</Script>

---


Danach <A href...onmouseover="xy.src=name2.src" onmouseout="xy.src=name1.src"> < IMG NAME="xy" SRC="name1.jpg" ...>






Bilderwechsel II



Bilder ( wechseln )


Vorher: array!

Mit Bildern zu:

ein1.gif, ein1a.gif, ein2.gif, ein2a.gif, aus1.gif, aus1a.gif, aus2.gif, aus2a.gif

<IMG name= "f" SRC="F.gif Alt= "Bild F" >
<A HREF = Link1.htm"
onmouseover= "f.src= ein1.src; a1.src = ein1a.gif;"
onmouseout= "f.src= aus1.src; a1.src = aus1a.gif;">

<IMG name= "a1" SRC="A1.gif Alt= "Bild A1" > </A>

<A HREF = Link2.htm"
onmouseover= "f.src= ein2.src; a2.src = ein2a.gif;"
onmouseout= "f.src= aus2.src; a2.src = aus2a.gif;">

<IMG name= "a2" SRC="A2.gif Alt= "Bild A2" > </A>







Bilderwechsel III



Bildwechsel Quick and dirty -

ohne das Wort "JavaScript"



<A title="Suche" HREF="suchen.htm"
onMouseDown="suche.src='such3b.gif';"
onMouseOut="suche.src='such3a.gif';" >

<IMG name="suche" SRC="such3a.gif"
title="Suche" ALT="Suche" Border="0" ></A>

Geprüft in Mozilla1.5, Netscape 4, MSIE 5-6

Achtung:

Für Netscape 4

"onMouse..."

immer in den Verweis-Tag, nicht in den Bild (IMG-) Tag legen.




Bilderwechsel IV



Alternatives Bild statt "ALT"-Text -
zeigt bei fehlendem Bild ein Ersatzbild an:


<script language="JavaScript">
var altbild = new Image (länge, breite);
altbild.src = "http...BilderName.jpg";
</script>

<IMG SRC="xyz.jpg" onErrror = "this.src=altbild.src" >

(Internet Magazin 06 /06)


----


Bild erst auf Wunsch anzeigen:

<IMG SRC= "erstesbild.jpg" OnClick = "javascript:this.src= '
http://...zweitesbild.jpg'" ALT="Bild ansehen? Hier Klicken">

Für das erste Bild kann auch ein Anklick-Symbol gewählt werden - oder gar nichts.

<IMG OnClick = "javascript:this.src= 'http://...zweitesbild.jpg'" ALT="Bild ansehen? Hier Klicken">




Mailto aufteilen



Mails per JavaScript aufteilen:


<script language="Javascript">

document.write( '\<A HREF\=\"mailto:' + 'name' +
'@'+ '123\.com\"\>mail abschicken\<\/A\>' );

</script>




Drucken lassen





Ruft die Druckfunktion des Browsers auf:


"javascript:window.print();"



oder

<Body onLoad="print()" >





Bravenet: Soundklick



Von Bravenet Webmaster Tips and Tricks February 17, 2003:

Make a sound on mouseover. Some of our members have been requesting a script that would generate a sound on when a visitor mouses over a link or other object on the webpage. We found this one and thought we would pass it along.

http://www.bravenet.com/newsletters/tips.php



<HTML>
<HEAD>

<SCRIPT language="JavaScript">

<!--
var aySound = new Array();

// Below: source for sound files to be preloaded
aySound[0] = "ding.wav";

// DO NOT edit below this line
document.write('<BGSOUND ID="auIEContainer">')

IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
ver4 = IE||NS? 1:0;
onload=auPreload;

function auPreload()
{ if (!ver4) return;
if (NS) auEmb = new Layer(0,window);
else
{ Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
document.body.insertAdjacentHTML("BeforeEnd",Str); }
var Str = '';
for (i=0;i<aySound.length;i++) Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"

if (IE) auEmb.innerHTML = Str;
else
{ auEmb.document.open(); auEmb.document.write(Str);
auEmb.document.close(); }
auCon = IE? document.all.auIEContainer:auEmb;
auCon.control= auCtrl; }

function auCtrl(whSound,play)
{ if (IE) this.src = play? aySound[whSound]:'';
else eval("this.document.embeds[whSound]." + (play? "play()":"stop()")) }

function playSound(whSound)
{ if (window.auCon) auCon.control(whSound,true);
} function stopSound(whSound)
{ if (window.auCon) auCon.control(whSound,false);
}

//-->
</SCRIPT>

</HEAD>

<BODY>

<P>
Place this code where you want it to appear on the page:

<A HREF="#" onMouseOver="playSound(0)" onMouseOut="stopSound(0)"><B>Move
mouse over to play sound</B></A>

</BODY></HTML>


---------------------------------------------------

Kommentar:

- Geht in Netscape und MSIE, hängt bei letzterem das Sytem aber komplett auf, wenn der Soundplayer nicht richtig konfiguriert ist.

- Erlaubt mehrere verschiedene Sounds einzeln abzurufen, auch unterschiedliche Formate.

- Erlaubt im Gegensatz zum AudioBox Applett mehrere Script-Aktionen gleichzeitig und stoppt beim Verlassen des Link.

Siehe auch:

http://www.erleuchtet.gmxhome.de/hilfe/sounds1.htm




Kein umrandeter Internet Explorer Link



Internet Explorer gepunktete Link-Umrandung abstellen

Internet Magazin 6/2000

Der Internet Explorer umrandet angeklickte Objekte ( Links, Bilder ) mit gestrichelten Linien. Dies stört vor allem bei Frames. Abstellen läßt sich dies durch kleines JavaScript, das entweder in BODY - Tag des Dokuments oder in HREF - Tags eingefügt wird:

<BODY onclick="if (document.all) body.focus();">
<A HREF "
http://www.yahoo.com/" onclick="if (document.all) body.focus();">

---

Sie können den gepünktelten Rahmen auch verhindern, indem Sie im Verweis notieren:
<a href="ziel.htm" onFocus="if(document.all) this.blur()">Text</a>

Beachten Sie jedoch, dass Sie dem Anwender damit die Möglichkeit nehmen, mit der Tabulatortaste auf diesen Verweis zu positionieren und diesen dann mit der Return-Taste auszuführen.


---------------------------------------


Lösung über ein Java Script:


<head>

...

<script language="JavaScriptl.2">

<!--

function kill-linkrahmen(x)
{
if (document.all)
{
x.blur();
}
}

//-->

</script>

</head>

<body>

<p>

<a href="ziel.html" onclick="kill-linkrahmen(this);">Ein Link ohne punktierten Rahmen</a>

</p>

</body>