Archivlink: javarea.de Forum > JavaScript > LIghtbox 2.03a Problem
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > LIghtbox 2.03a Problem
Pages: [1]
2
... nächste »
... Letzte »
| geschrieben von sobi am 20.07.2008 - 13:42 |
Hallo ich arbeite bei einem neuen Counter Script unter Einsatz der lightbox 2.03a von Lokesh Dhakar. Das Script gibt's bei dynamic drive.
Das Script funktioniert auf HTML Basis prima. Jetzt versuch ich aber eine Lightbox Grafik via JavaScript aufzurufen (als Hinweisbox, die automatisch aufgehen soll). Den Code dazu habe ich mir so ausgedacht::
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
| <script type="text/javascript" language="javascript">
<!-- //
location.href=("./grafics/security-advice.gif" "rel=lightbox");
//-->
</script> |
Das funktioniert aber nicht. Ich bekomme nur die Grafik angezeigt, ohne Lightbox.
Kennt sich zufällig jemand mit so einer Problematik aus ???
cu
Uli
|
| geschrieben von Patrick am 20.07.2008 - 13:48 |
lt. dynamic-drive sollte das so funktionieren....
hast du die JS vor dem Aufruf eingebunden oder dahinter?
Poste mal deinen ganzen Quelltext |
| geschrieben von sobi am 20.07.2008 - 14:09 |
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de">
<head>
<!-- (c) 2008 script & design by uli sobers:: http://www.free-templates-sobers.de -->
<!-- dieses script ist freie, unter der GNU/GPL veroeffentlichte software. -->
<!-- einzelheiten zur lizenz entnehmen sie bitte den hilfe seiten des menus. -->
<!-- dieser copyrighthinweis und die lizenztexte duerfen nicht entfernt werden. -->
<!-- (c) lightbox js 2.03a script by lokesh dhakar / courtesy of http://www.dynamicdrive.com -->
<!-- (c) laendererkennung by http://www.infosniper.net -->
<!-- alle rechte vorbehalten, all rights reserved -->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="de" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="generator" content="html studio 1.4b" />
<meta name="author" content="dipl.-ing. uli sobers" />
<meta name="publisher" content="your name" />
<meta name="copyright" content="dipl.-ing. uli sobers" />
<meta name="robots" content="noindex, nofollow" />
<title><?php include (".release.data.inc.php5"); echo "$version"; ?> admin tool</title>
<link rel ="shortcut icon" href="./favicon.ico" />
<script type="text/javascript" src="./javascript/clock.js"></script>
<script type="text/javascript" src="./javascript/prototype.js"></script>
<script type="text/javascript" src="./javascript/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="./javascript/lightbox.js"></script>
<link rel ="stylesheet" href="./styles.css" type="text/css" media="screen" />
<script type="text/javascript" language="javascript">
<!--
//
location.href = ("grafics/security-advice.gif" "rel=lightbox")
window.status = " (c) 2008 by uli sobers +49.163.8802.979";
//-->
</script>
<!--[if gte ie 5.5]>
<style type="text/css"> html {overflow: auto;} </style>
<![endif]-->
</head>
<body>
<!-- erstelle 1ste bidschirmzeile -->
<div id="line-1-1" ><?php echo "$version"; ?></div><div id="line-2-1"></div>
<!-- erstelle homepage titel -->
<div id="homepage_title_shadow" ><?php include ("../user_data.inc.php5"); echo "$homepage_title"; ?></div>
<div id="homepage_title" ><?php echo "$homepage_title"; ?></div>
<!-- erstelle bedienungs-button zeile -->
<div id="anzeige"><a href="index.php" onfocus="this.blur()" title=""><img src="grafics/button_1.gif" alt="" /></a></div>
<div id="drucken"> </div>
<div id="setup"> </div>
<div id="hilfe"> </div>
<div id="security"><a href="security.php" onfocus="this.blur()" title=""></a></div>
<!-- erstelle system datum feld -->
<div id="date"><div id="date_left"><script type="text/javascript" src="./javascript/date.js"></script></div><div class="tblr"> </div></div>
<!-- erstelle system zeit feld -->
<div id="digi_clock"><div id="digi_clock_left"> </div><div class="tblr"> </div></div>
<!-- stelle variablen fuer das folgende aufzeichnungs-start feld und die summen felder bereit -->
<?php include ("get.ministat.data.php"); ?>
<!-- erstelle aufzeichnungsstart feld -->
<div id="afz_start"><div id="afz_start_left"><?php echo $start_date; ?></div><div class="tblr"> </div></div>
<!-- erstelle summen feld aller erfassten klicks-->
<div id="gesamt"><div id="gesamt_left"><?php echo $s_dat; ?></div><div class="tblr"> </div></div>
<!-- erstelle summen feld aller gestern erfassten klicks -->
<div id="gestern"><div id="gestern_left"><?php echo $hits_y; ?></div><div class="tblr"> </div></div>
<!-- erstelle summen feld aller heute erfassten klicks -->
<div id="heute"><div id="heute_left"><?php echo $hits_t; ?></div><div class="tblr"> </div></div>
<!-- anzeige zum .htaccess status -->
<?php if (!file_exists(".htaccess")){echo "<div id=\"security-alert\"><a href=\"grafics/security-advice.gif\" onfocus=\"this.blur()\" rel=\"lightbox\" title=\".htaccess Schutz jetzt einrichten\" rev=\"security.php\"><img src=\"grafics/security-alert.gif\" alt=\"Sicherheitshinweis\" /></a></div>";}?>
<?php if ( file_exists(".htaccess")){echo "<div id=\"security-alert\"><a href=\"grafics/security-advice-ok.gif\" onfocus=\"this.blur()\" rel=\"lightbox\"><img src=\"grafics/security-ok.gif\" alt=\"Systemsicherheit OK\" /></a></div>";}?>
<!-- erstelle ausgabebereich -->
<div id="a_top"><div id="a_top_l"></div><div id="a_top_m"></div><div id="a_top_r"></div></div>
<iframe src="format.values.php" id="a_output" height="366" marginheight="0" marginwidth="0" frameborder="0" scrolling="auto"></iframe>
<div id="a_bottom"><div id="a_b_l"></div><div id="a_b_m"></div><div id="a_b_r"></div></div>
<!-- footer -->
<div id="footer" style="position: relative; top: 20px; left: 100px;">
© 2008 | <?php echo "$name"?> | <?php echo "$strasse"?> | <?php echo "$plz"?> | <?php echo "$ort"?><br />
<?php echo "$tel1"?> | <?php echo "$tel2"?> | <a href="mailto:<?php echo "$email" ?>">E-Mail Me</a>
</div>
</body>
</html>
|
So wie der Code oben steht, bekomme ich einen JavaScript Error, expected ")" angezeigt. Wenn ich das rel="lightbox" rausnehme, kommt nur die Grafik. |
| geschrieben von Micha am 20.07.2008 - 14:31 |
Hi,
ich verweise mal auf den SELFHTML-Foreneintrag: http://forum.de.selfhtml.org/archiv..../#m1065551
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
| <a href="/pfad/zum/bild.ext" rel="lightbox" id="erstesBild">Linktext</a>
function initLightbox() {
var aObj = document.getElementById("erstesBild"); //alternativ auch über anchors()
myLightbox = new lightbox();
myLightbox.start( aObj ); // hier die Uebergabe des Link-Objektes
} |
Hilft Dir das?
Gruß Micha |
| geschrieben von sobi am 20.07.2008 - 17:22 |
Danke Micha, das ist die Lösung, mit den restlichen Einblendungen der Grafiken sollte ich schon
via PHP klar komen. Hier der Quellcode der Lösung::
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
| <script type="text/javascript" language="javascript">
<!--//
function initLightbox() {
var aObj = document.getElementById("alert1");
myLightbox = new Lightbox();
myLightbox.start( aObj );
}
//-->
</script>
</head>
<body onLoad="initLightbox();">
<a href="grafics/security-advice.gif" rel="lightbox" id="alert1"></a>
..... |
WICHTIG ist folgende Feinheit:: die Funktion new Lightbox(); muss mit einem großen L geschrieben werden, dann haut das
bei der LightBox 2.03a hin. Bei Kleinschrift bekommt man einen JS Error.
THX
Uli  |
| geschrieben von Micha am 20.07.2008 - 17:57 |
Hi,
ja, das war mein Fehler! Objekte werden i.A. immer groß geschrieben. Da damals keiner mehr genatwortet hat, ist dies wohl untergegangen.
Auf [inlinecode]language="javascript"[/inlinecode] kannst DU im Übrigen verzichten.
Gruß Micha
|
| geschrieben von sobi am 21.07.2008 - 16:41 |
Ich möchte ja mit dem Lightbox Effekt etwas spielen, so Design mäßig...
Kann man eine aufgerufene Lightbox denn auch per JS wieder automatisch abschalten ?? Pseudocode::
| PHP-Quelltext | 1:
2:
3:
4:
5:
|
<?php
echo ("document.write ='lightbox.off'");
?>
|
oder irgendwie anders, wenn eine PHP Routine abgearbeitet ist.
Mir schwebt so was vor, die Lightbox auch als Pausenbild zu nutzen...
cu
Uli
|
| geschrieben von Micha am 21.07.2008 - 16:45 |
Hi,
Du müsstest vermutlich nur die Close-Funktion aufrufen aber ich denke nicht, dass Dein Vorhaben funktionieren wird, da PHP und JS auf zwei unterschiedlichen Ebenen ablaufen.
Gruß Micha |
| geschrieben von sobi am 21.07.2008 - 16:55 |
das einblenden von ausführbarem javascript code per php geht ganz einfach::
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
|
<?php
// erzeuge intro sound genau 1x bei aktiviertem javascript
if ($_SESSION['sound'] == 0) {
echo "<script type=\"text/javascript\" language=\"javascript\"> document.write('<object type=\"audio/mpeg\" data=\"./sounds/intro.mp3\" height=\"0\" width=\"0\"><param name=\"filename\" value=\"./sounds/intro.mp3\"><\/object>')</script>";
$_SESSION['sound'] = 1;
}
?>
|
siehe hier: [url=http://2.sobers.de][Beispiel Link]
der spielt einen sound.
wie spreche ich denn die CLOSE Funktion an ?? |
| geschrieben von sobi am 21.07.2008 - 16:57 |
sorry, hier der richtige link::
Sound Beispiel |
| geschrieben von sobi am 21.07.2008 - 19:53 |
die funktion die zum beenden einer lightbox aufgerufen werden muss heisst:: myLightbox.end();
kann man das im body per window.onload =... lösen, wenn der onload=".." im body schon belegt ist ? oder wie stellt man das an ??
bin wie immer für jeden tipp dankbar..
grüße
Uli |
| geschrieben von Micha am 21.07.2008 - 21:22 |
Hi,
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
| window.onload = function(e) {
function1();
function2();
//...
functionN();
} |
Nichts in den Body-Tag, sondern alles in die externe JS-Datei.
oder
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
| function onLoadFunc() {
function1();
function2();
//...
functionN();
}
<body onload="onLoadFunc();" > |
Gruß Micha |
| geschrieben von Micha am 21.07.2008 - 21:24 |
Hi,
und wenn noch was hinzukommt:
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
| var oldonload = (window.onload || new Function());
window.onload = function () {
oldonload();
function1();
function2();
} |
Micha |
| geschrieben von sobi am 22.07.2008 - 02:56 |
dass man mehrere funktionsaufrufe zusammenfassen kann, kenn ich. danke.
ich hab folgendes problem:
| HTML-Quelltext | 1:
| <body onload"newLightbox()" |
das läuft...jetzt muss ich warten, bis eine PHP Routine beendet ist
| PHP-Quelltext | 1:
2:
3:
|
<?
include ("Seitenaufbau.php")
?>
|
am Ende der PHP Routine steht dann
| PHP-Quelltext | 1:
2:
3:
|
<?
echo "Javascriptcode=myLightbox.end()";
?>
|
meine Frage ist, wie ich den letzten JavaScript Code ans Laufen kriege,
wenn der body onload oder windows.onload schon belegt ist ? Das Schließen
soll abhängig sein vom Ende der PHP Routine "Seitenaufbau.PHP"
ich werde dein letztes beispiel mal probieren, verstehen tu ich es leider noch nicht.
weisst ja, ich und javascript 
ich hoffe ich habe die fragestellung jetzt mal besser rüber gebracht.
danke schon mal, ich melde mich
Uli |
| geschrieben von Micha am 22.07.2008 - 11:07 |
Hi,
da die Seite auf dem Server generiert wird mittels PHP, wird Dein JS nicht mehr zum zuge kommen! onload startet erst, wenn die Seite _vollständig_ geladen ist - also Dein include bereits abgearbeitet ist. Man wird von der Box einfach nichts sehen!
Was spricht übrigens dagegen aus:
| HTML-Quelltext | 1:
| <body onload"newLightbox()" |
ein
| HTML-Quelltext | 1:
2:
3:
| window.onload = function(e) {
newLightbox();
} |
zu machen?
An anderer Stelle (dahinter also)
ginge dann:
| HTML-Quelltext | 1:
2:
3:
4:
5:
| var oldonload = (window.onload || new Function());
window.onload = function () {
oldonload();
myLightbox.end();
} |
sofern myLightbox existiert. Der letzte Code macht also folgendes:
| HTML-Quelltext | 1:
2:
3:
4:
| window.onload = function(e) {
newLightbox();
myLightbox.end();
} |
Du siehst, dass das sinnfrei ist?
Micha |
|