window.open onclick?
Volki
- javascript
Hallo,
ich habe folgendes Problem:
In einer Bildlaufleiste möchte ich auf ein Bild klicken und dieses soll sich dann, nach dem Klick, in einem neuen Fenster öffnen. Was ich bisher erreicht habe ist, dass sich die Bildlaufleiste und die Bilder gleichzeitig in verschiedenen Fenstern darstellen, mit folgendem Script (natürlich nur ein Teil davon):
"images/photo1.jpg", window.open("images/photo1.jpg"),
Das erste 'images/photo1.jpg' bezieht sich auf die Bildlaufleiste und das Zweite auf das sich separat öffnende Fenster. Wie kann ich jetzt hier, möglichst einfach, ein z.B. 'onclick' einfügen, damit sich ein Bild beim Anklicken öffnet?
Mein Traum wäre gewesen:
"images/photo1.jpg", onclick = window.open("images/photo1.jpg"),
Könnt Ihr mir bitte helfen?
Hi,
mit folgendem Script (natürlich nur ein Teil davon):
"images/photo1.jpg", window.open("images/photo1.jpg"),
das ist kein sinnvoller JavaScript-Code. Es sieht aus wie ein Teil einer Funktionsargumentliste.
Wie kann ich jetzt hier, möglichst einfach, ein z.B. 'onclick' einfügen, damit sich ein Bild beim Anklicken öffnet?
Das kann Dir niemand sagen. Du sagst ja nicht mal, was die o.g. Funktion macht, bzw. ob meine These, dass es sich um eine Funktion handelt, überhaupt stimmt.
Könnt Ihr mir bitte helfen?
You go first. Dein Problem ist nicht nachvollziehbar, also kann Dir keiner helfen.
Cheatah
Hi,
mit folgendem Script (natürlich nur ein Teil davon):
"images/photo1.jpg", window.open("images/photo1.jpg"),das ist kein sinnvoller JavaScript-Code. Es sieht aus wie ein Teil einer Funktionsargumentliste.
Wie kann ich jetzt hier, möglichst einfach, ein z.B. 'onclick' einfügen, damit sich ein Bild beim Anklicken öffnet?
Das kann Dir niemand sagen. Du sagst ja nicht mal, was die o.g. Funktion macht, bzw. ob meine These, dass es sich um eine Funktion handelt, überhaupt stimmt.
Könnt Ihr mir bitte helfen?
You go first. Dein Problem ist nicht nachvollziehbar, also kann Dir keiner helfen.
Cheatah
Hallochen,
vielen Dank für Eure schnellen Versuche mein Problem zu lösen. Aber ich will mal nicht so sein und Euch ein bisschen auf die Sprünge helfen. Hier das Script:
<body>
<body onload="Carousel()">
<script type="text/javascript">
Create a div with transparent place holder in your html
<div id="Carousel" style="position:relative">
<img src="placeholder.gif" width="404" height="202">
</div>
placeholder width:
4 sided: 1.42 * carousel image width + 3
6 sided: 2 * carousel image width +4
8 sided: 2.62 * carousel image width + 5
12 sided: 3.87 * carousel image width + 7
placeholder height:
carousel image height+2
Insert onload in body tag
<body onload="Carousel()">
// 7 variables to control behavior
var Car_Image_Width=140;
var Car_Image_Height=225;
var Car_Border=true; // true or false
var Car_Border_Color="white";
var Car_Speed=4;
var Car_Direction=true; // true or false
var Car_NoOfSides=8; // must be 4, 6, 8 or 12
/* array to specify images and optional links.
For 4 sided carousel specify at least 2 images
For 6 sided carousel specify at least 3
For 8 sided carousel specify at least 4
For 12 sided carousel specify at least 6
If Link is not needed keep it ""
*/
Car_Image_Sources=new Array(
"images/photo1.jpg","", //this slide isn't linked
"images/photo2.jpg","", //this slide isn't linked
"images/photo3.jpg","", //this slide isn't linked
"images/photo4.jpg","" // NOTE No comma after last line
);
CW_I=new Array(Car_NoOfSides/2+1);C_ClcW=new Array(Car_NoOfSides/2);
C_Coef=new Array(
3*Math.PI/2,0,3*Math.PI/2,11*Math.PI/6,Math.PI/6,3*Math.PI/2,7*Math.PI/4, 0,
Math.PI/4,3*Math.PI/2,5*Math.PI/3,11*Math.PI/6,0,Math.PI/6,Math.PI/3);
var C_CoefOf=Car_NoOfSides==4?0:Car_NoOfSides==6?2:Car_NoOfSides==8?5:9;
C_Pre_Img=new Array(Car_Image_Sources.length);
var C_Angle=Car_Direction?Math.PI/(Car_NoOfSides/2):0,C_CrImg=Car_NoOfSides,C_MaxW,C_TotalW,
C_Stppd=false,i,C_LeftOffset,C_HalfNo=Car_NoOfSides/2;
function Carousel(){
if(document.getElementById){
for(i=0;i<Car_Image_Sources.length;i+=2){
C_Pre_Img[i]=new Image();C_Pre_Img[i].src=Car_Image_Sources[i]}
C_MaxW=Car_Image_Width/Math.sin(Math.PI/Car_NoOfSides)+C_HalfNo+1;
Car_Div=document.getElementById("Carousel");
for(i=0;i<C_HalfNo;i++){
CW_I[i]=document.createElement("img");Car_Div.appendChild(CW_I[i]);
CW_I[i].style.position="absolute";
CW_I[i].style.top=0+"px";
CW_I[i].style.height=Car_Image_Height+"px";
if(Car_Border){
CW_I[i].style.borderStyle="solid";
CW_I[i].style.borderWidth=1+"px";
CW_I[i].style.borderColor=Car_Border_Color}
CW_I[i].src=Car_Image_Sources[2*i];
CW_I[i].lnk=Car_Image_Sources[2*i+1];
CW_I[i].onclick=C_LdLnk;
CW_I[i].onmouseover=C_Stp;
CW_I[i].onmouseout=C_Rstrt}
CarImages()}}
function CarImages(){
if(!C_Stppd){
C_TotalW=0;
for(i=0;i<C_HalfNo;i++){
C_ClcW[i]=Math.round(Math.cos(Math.abs(C_Coef[C_CoefOf+i]+C_Angle))*Car_Image_Width);
C_TotalW+=C_ClcW[i]}
C_LeftOffset=(C_MaxW-C_TotalW)/2;
for(i=0;i<C_HalfNo;i++){
CW_I[i].style.left=C_LeftOffset+"px";
CW_I[i].style.width=C_ClcW[i]+"px";
C_LeftOffset+=C_ClcW[i]}
C_Angle+=Car_Speed/720*Math.PI*(Car_Direction?-1:1);
if((Car_Direction&&C_Angle<=0)||(!Car_Direction&&C_Angle>=Math.PI/C_HalfNo)){
if(C_CrImg==Car_Image_Sources.length)C_CrImg=0;
if(Car_Direction){
CW_I[C_HalfNo]=CW_I[0];
for(i=0;i<C_HalfNo;i++)CW_I[i]=CW_I[i+1];
CW_I[C_HalfNo-1].src=Car_Image_Sources[C_CrImg];
CW_I[C_HalfNo-1].lnk=Car_Image_Sources[C_CrImg+1]}
else{ for(i=C_HalfNo;i>0;i--)CW_I[i]=CW_I[i-1];
CW_I[0]=CW_I[C_HalfNo];
CW_I[0].src=Car_Image_Sources[C_CrImg];
CW_I[0].lnk=Car_Image_Sources[C_CrImg+1]}
C_Angle=Car_Direction?Math.PI/C_HalfNo:0;C_CrImg+=2}}
setTimeout("CarImages()",50)}
function C_LdLnk(){if(this.lnk)window.location.href=this.lnk}
function C_Stp(){this.style.cursor=this.lnk?"pointer":"default";C_Stppd=true;}
function C_Rstrt(){C_Stppd=false}
</script>
<div id="Carousel" style="position:relative">
<img src="placeholder.gif" width="371" height="225">
</div>
<p><font face="Arial" size="-2">Free DHTML scripts provided by<br><a href="http://www.dynamicdrive.com">Dynamic Drive</a></font></p>
</body>
</html>
Dies ist ein aus dem Internet kopiertes Script. Wie kann ich jetzt erreichen, dass die Bilder der Bildlaufleiste bzw. dem Carousel mit einem Klick sich öffnen?
Noch ein kleiner Hinweis auch wenn Ihr's nicht glaubt: Ich bin Anfänger!
Danke.
Mahlzeit,
1. FOTU (bzw. TUFO) ist genauso unschön und ungern gesehen wie TOFU.
Aber ich will mal nicht so sein und Euch ein bisschen auf die Sprünge helfen.
Bitte??? Das ist ja wohl das mindeste - immerhin willst DU hier etwas von UNS (= Deinen Lesern).
Achja ... außerdem ist es nicht besonders nett, genau diesen Leuten (Deiner Leserschaft) unkommentiert ein komplettes irgendwo "ausgeliehenes" Skript - dessen Funktionsweise Du höchstwahrscheinlich nicht einmal ansatzweise verstanden hast (und ich gehe sogar so weit zu behaupten, dass Du es nicht einmal ernsthaft probiert hast) - vorzuwerfen mit einem zwischen den Zeilen geschriebenen "Da habt Ihr's - jetzt macht mal!".
Car_Image_Sources=new Array(
"images/photo1.jpg","", //this slide isn't linked
"images/photo2.jpg","", //this slide isn't linked
"images/photo3.jpg","", //this slide isn't linked
"images/photo4.jpg","" // NOTE No comma after last line
);
Hier werden anscheinend die Bilder und ggf. die Links, die beim Klick auf ein Bild geöffnet werden sollen, definiert.
function C_LdLnk(){if(this.lnk)window.location.href=this.lnk}
Diese Funktion öffnet den Link, indem Sie die im o.g. Array angegebene Adresse einfach im aktuellen Fenster öffnet.
Stattdessen könntest Du hier natürlich auch sowas wie
function C_LdLnk() {
if (this.lnk) window.open(this.lnk, 'Popup', ''); // hier ggf. [ref:self812;javascript/objekte/window.htm#open@title=Angaben zum Aussehen und Verhalten des Fensters] einfügen
}
schreiben.
<p><font face="Arial" size="-2">Free DHTML scripts provided by<br><a href="http://www.dynamicdrive.com">Dynamic Drive</a></font></p>
</body>
</html>
Wenigstens hast Du den entsprechenden Quellenausweis nicht einfach gelöscht.
Dies ist ein aus dem Internet kopiertes Script.
War ja zu erwarten.
Wie kann ich jetzt erreichen, dass die Bilder der Bildlaufleiste bzw. dem Carousel mit einem Klick sich öffnen?
Indem Du den Link entsprechend gestaltest und das Skript ggf. etwas anpasst?
Noch ein kleiner Hinweis auch wenn Ihr's nicht glaubt: Ich bin Anfänger!
Hätte jetzt sicherlich keiner erraten ...
MfG,
EKKi
Mahlzeit,
Was ich bisher erreicht habe ist, dass sich die Bildlaufleiste und die Bilder gleichzeitig in verschiedenen Fenstern darstellen, mit folgendem Script (natürlich nur ein Teil davon):
"images/photo1.jpg", window.open("images/photo1.jpg"),
Tut mir leid, aber das ist kein aussagekräftiges Skript. Zumindest mir ist die Bedeutung und der Zusammenhang nicht klar - und ich behaupte mal, das geht einem Großteil der übrigen Leser genauso. Vielleicht solltest Du genauer beschreiben, was Du eigentlich tust und relevanten Code liefern?
Das erste 'images/photo1.jpg' bezieht sich auf die Bildlaufleiste und das Zweite auf das sich separat öffnende Fenster. Wie kann ich jetzt hier, möglichst einfach, ein z.B. 'onclick' einfügen, damit sich ein Bild beim Anklicken öffnet?
Das kommt darauf an. Und zwar vor allem darauf, was Du eigentlich mit "Bildlaufleiste" meinst.
Mein Traum wäre gewesen:
"images/photo1.jpg", onclick = window.open("images/photo1.jpg"),
Mein Traum wäre eher was anderes ... immer genug Geld auf meinem Konto, ein kleines Häuschen mit meiner Freundin, Forumsteilnehmer, die sich verständlich ausdrücken ...
Könnt Ihr mir bitte helfen?
Keine Arme - keine Kekse.
MfG,
EKKi