PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : öffnen eines bildes mit den Maßen des Bilds


Mac Fly
09.02.2002, 21:40
tagchen. Erstens mal, ich bin voll der N00b in Java Script.

Trotzdem will ich eine Funktion, die mir bei nem Klick auf nen Link eine Browser Instanz öffnet, und zwar genau mit den Maßen des Pics.
Aber ich verzweifele ja schon mit ner simplen Alert ausgabe.

Folgende Funktion steht im Header
function oeffnepic(Pic) {
alert(Pic);
}


und aufrufen tu ich es mit
<a Href=&quot;javascript:oeffnepic(../../../Bilder/kirchheim/1.jpg);&quot;>

Soweit hab ich das aus SelfHTML rausgelesen. Aber es funzt net. Bekomm immer nen Scriptfehler.

Auf jedenfall möchte ich dann mit der funktion window.open ein Browserfenster öffnen, mit den Maßen, die ich mit document.width usw auslese.

Wer kann mir weiterhelfen?


Felix Kaiser
10.02.2002, 00:50
Der Skriptfehler kommt weil du die URL des Pics nicht in Anführungszeichen gepackt hast. Und des hab ich richtig verstanden, du willst ein Popup öffnen was genauso groß ist wie halt des Bild?

Mac Fly
10.02.2002, 01:47
Jo, mittlerweile bin ich etwas weiter.

Ich habe ne Datei kirchheim.js
function kirchheim(picnr) {




if(picnr == 1) {



window.open(&quot;../../../Bilder/kirchheim/1.jpg&quot; , &quot;Bild Nr.1&quot; , &quot;width=600 height=395 scrollbars=no location=no resizable=no&quot;);



}

if(picnr == 2) {
window.open(&quot;../../../Bilder/kirchheim/2.jpg&quot; , &quot;Bild Nr.1&quot; , &quot;width=600 height=399 scrollbars=0 location=0 resizable=0&quot;);
}

im Header hab ich sie mit <script language=&quot;JavaScript&quot; src=&quot;../../../Scripts/kirchheim.js&quot; type=&quot;text/javascript&quot;>

und der Link lautet <a Href=&quot;javascript:kirchheim(1);&quot;>

So muss ich halt für jedes Pic ne extra if abfrage machen. Aber das mit der if abfrage funktioniert net ganz so.

Am liebsten hätte ich ja ne allgemeingültige routine, die zuerst die bildattribute abfragt, und dann ein Popup mit eben diesen Größen öffnet.

Aber wie kann ich die attribut abfragen, ohne das das Pic per img tag eingebunden ist?
irgendwoher brauch ich ja den namen für document.height

*verzweifel*

Ist das überhaupt mit Java Script möglich?

Nev
10.02.2002, 11:50
Hi @ll

Würde es ned so machen, wie Mac Fly beschrieben hat,
da er dann 2 Files pro Bild ändern müsste.

Leider gibt es keine Möglichkeit in JavaScript die Grössen auszulesen.

JS - Lösung:

Das kommt vor den Body:

<script language=&quot;javascript&quot;>
function winopen(url, w, h)
{
var MainWindow = window.open (url,
&quot;_blank&quot;,&quot;toolbar=no,location=no,menubar=no,scrollbars=no,width=&quot;+w+&quot;,height=&quot;+h+&quot;,resizeable=yes,status=no&quot;);
}
</script>

Es wird ein Fenster aufgerufen, mit bestimmter Breite & Höhe.
Es wird kein Toolbar, keine Adresszeile, kein Menü und keine Statuszeile angezeigt.

der Aufruf für für das einzelne Bild schaut so aus:

<a href=&quot;JavaScript:winopen(&acute;BILDURL&acute;,&acute;BREITE&acute;,&acute;HÖHE&acute;)&quot;>LINKTEXT</a>


BILDURL ... Bildpfad
BREITE ... Breite des Fensters
HÖHE ... Höhe des Fensters
LINKTEXT ... Linktext zum Bild

Mac Fly
10.02.2002, 12:58
Danke, funzt einwandfrei.
Nur, wie bekomme ich marginangaben in den Link?
Ich hab nämlich jetzt links und oben in dem Popup nen weissen rand von 5-10 Pixel :(
Den hätte ich gern weg...

Und nochwas: Ich hab versucht, die Funktion zu erweitern. Und zwar so, das ich in dem link noch ne Beschreibung mitgebe!

<a Href=&quot;javascript:winopen(&acute;../../../bilder/kirchheim/1.jpg&acute;,&acute;600&acute;,&acute;395&acute;,&acute;radlader&acute;);&quot; Title=&quot;Radlader beim Stapeln&quot;><img Src=&quot;../../../bilder/kirchheim/1klein.jpg&quot; Width=&quot;100&quot; Height=&quot;66&quot; Border=&quot;0&quot; Alt=&quot;Radlader beim Stapeln&quot;></a>

Und die Funktion:
function winopen(url, w, h, desc)
{
var MainWindow = window.open(url,&quot;_blank&quot;,&quot;toolbar=no,location=no,menubar=no,scrollbars=no,width=&quot;+w+&quot;,height=&quot;+h+&quot;,resizeable=yes,status=no&quot;);
document.write(desc);

}

Aber ich hätte den text gern unter dem Bild, und net auf der Referrer page!
Und, kann ich irgendwie den Text aus dem Alt-Text übernehmen?

Und, krieg ich es unabhängig von der Auflösung hin, das es in der Mitte geöffnet wird? Wie -1 -1 in mIRC ;)

Aber mit welcher Sprache würde es denn gehen? PHP?

Nev
10.02.2002, 16:55
Hi @gain

Dann müßtest dus in PHP schreiben

das zentrieren geht noch mit JS, funkt aber nur im IE

wenn ich einwenig Zeit habe könnte ich dir das schreiben
nur schauts die Woche schlecht aus!!

Mac Fly
12.02.2002, 20:28
THX, das is super!

funzt wirklich nur das zentrieren?

Ich werd mal vversuchen den rahmen wegzukriegen...
anstatt das bild direkt zu öffen, mit nem leeren window anfangen ;)

Mal sehen, was ich schon kann ;)

TenShoe
13.02.2002, 00:23
Den Rand bekommst du auch weg, indem du das Bild in den Background des popups steckst.
<body background=&quot;deinbild&quot;>

Mac Fly
13.02.2002, 16:00
THX, auch ne gute Idee, aber ich habs jetzt anders gelöst...

function winopen(source, w, h, title)

{
var win;

var win=window.open(&quot;&quot;,&quot;Pictures&quot;,&quot;toolbar=no,location=no,menubar=no,scrollbars=no,width=&quot;+w+&quot;,height=&quot;+h+&quot;,resizeable=yes,status=no&quot;);
if(!title) { var title = &quot;Ups, Beschreibung vergessen!&quot;; }
else { var title=title; }

win.document.open();

win.document.writeln(&quot;<html><head><style type=\&quot;text/css\&quot;>&quot;);
win.document.writeln(&quot;<!--&quot;);
win.document.writeln(&quot;body { margin-left:0px; margin-right:0px; margin-top:0px; margin-bottom:0px }&quot;);
win.document.writeln(&quot;--></style><title>-=Netkiffer.de=- &quot;+title+&quot;</title>&quot;);
win.document.writeln(&quot;</head><body><img src=\&quot;&quot;+source+&quot;\&quot; border=\&quot;0\&quot;>&quot;);
win.document.focus();
}

hab nur ein Prob... der letze befehl zum focussieren geht net..
Und ich werde noch resizing einbauen...

Kann ich irgendwie den Title-Tag des Links übernehmen???
Oder den Alt-tag des Thumbnails, das als Link definiert ist???

Hab keinen Bock, alle meine Links neu zu schreiben ;)
Sind ca. 150+ ;)

TenShoe
13.02.2002, 18:36
Hey, ich wusste gar nicht, dass man mit Javascript HTML-Seiten generieren kann!
Der Writeln-Befehl war mir unbekannt. -kewle Sache! :))

Mac Fly
13.02.2002, 18:45
SelfHTML rulz ;)

maulwurf
13.02.2002, 23:10
hiho

zu dem rand in nem popup: das sind (unsichtbare) margin-angaben.
man muss sie im body-tag alle auf 0 setzen, dann kommt auch kein rand mehr. einige browser haben da nämlich nen voriengestellten rand, ähnlich wie bei den border-angaben bei tabellen.
also topmargin, leftmargin, marginwidth, marginheight = 0 in dem popup.

cya

Mac Fly
14.02.2002, 08:15
Jo, so hab ichs ja jetzt drinne? Oder meinst du als Attribut übergabe bei win.open() ?

maulwurf
14.02.2002, 20:27
hiho

war für die variante, dass dus doch mit nem neuen browserfesnter (JS) machst.
hatte nicht gesehen, daß dus jetzt anders machst.
also einfach vergessen ;)

cya

maulwurf
14.02.2002, 20:29
noch was

Kann ich irgendwie den Title-Tag des Links übernehmen???
Oder den Alt-tag des Thumbnails, das als Link definiert ist???

Hab keinen Bock, alle meine Links neu zu schreiben
Sind ca. 150+

du hast bei homesite oder dreamweaver die möglichkeit des global replace.. damit solltest du so etwas eigentlich hinkriegen können.

nu aba.. cya! ;)

Mac Fly
17.02.2002, 20:37
Jo, das würde schon gehen, aber es würde mich trotzdem interessieren, ob es möglich wäre...

Und, das mit dem zentrieren, da muss man die Position aus der größe des Pics errechnen?