Variable aus Link an Script übergeben
airbear
- javascript
Moin,
habe da ein Skript zum wechseln der Links abhängig vom zugreifenden Device (hier speziell Iphone & Ipad). Es sollen unterschiedliche Seiten geladen werden.
Nun möchte ich gerne die Variable "dirname" über den <a href> tag an das skript übergeben - hierbei komme ich ins straucheln.
Ziel soll sein mehrere links variabel abhängig vom hinterlegten Objekt platzieren zu können.
<script type="text/javascript" language="JavaScript">
window.onload = function () {
switchDevice();
}
function switchDevice() {
var dirname = 'test';
var pathIMG = '../panorama';
var ipad = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var iphone = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var others = {
"pathHTM":"../panorama",
"extHTM":"/pano.html",
"target":"_self"
};
var myAgent = navigator.userAgent.toLowerCase();
var linkSwitched = document.getElementById('linkSwitched');
var active;
if( myAgent.indexOf('ipad') >= 0 ) {
active = ipad;
} else if( myAgent.indexOf('iphone') >= 0 ) {
active = iphone;
} else {
active = others;
}
linkSwitched.href = active['pathHTM'] + "/" + dirname + active['extHTM'];
linkSwitched.target = active['target'];
}
</script>
'ǝɯɐu$ ıɥ
Nun möchte ich gerne die Variable "dirname" über den <a href> tag an das skript übergeben - hierbei komme ich ins straucheln.
also sowas http://example.com?dirname=hell ?
Sowas nennt sich QueryString und wird per GET übertragen.
ssnɹƃ
ʍopɐɥs
Hi,
danke für die schnelle Antwort:
Da ich ja den Link (damit er sich dynamisch ändert - siehe onload skript) per id ansteuere, verstehe ich nicht ganz wie ich hier den QueryString einbauen soll. Der Anker ist in dem Fall #
<a id="linkSwitched" href="#"><img src="Vorschaubild_Muster_400.png" width="400" height="127"></a>
Hier nochmal das ganze Script zusammen:
Das Script ändert mir den Link in abhängigkeit von seiner ID und dem Zugreifenden Device.
Das script verarbeitet die Variable dirname um den endgültigen Link auszugeben.
Kriege ich diese Variable (momentan oben im Skript) auch unten in den Link (per QueryString?) - der Aufbau ist mir nicht klar.
Ziel ist es wie gesagt, dass mehrere Links auf der Seite Platziert werden können, die das Script nutzen und dann auf jeweils ihre DIR weiterlinken.
<html>
<head>
[code lang=javascript]<script type="text/javascript" language="JavaScript">
window.onload = function () {
switchDevice();
}
function switchDevice() {
var dirname = 'test';
var pathIMG = '../panorama';
var ipad = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var iphone = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var others = {
"pathHTM":"../panorama",
"extHTM":"/pano.html",
"target":"_self"
};
var myAgent = navigator.userAgent.toLowerCase();
var linkSwitched = document.getElementById('linkSwitched');
var active;
if( myAgent.indexOf('ipad') >= 0 ) {
active = ipad;
} else if( myAgent.indexOf('iphone') >= 0 ) {
active = iphone;
} else {
active = others;
}
linkSwitched.href = active['pathHTM'] + "/" + dirname + active['extHTM'];
linkSwitched.target = active['target'];
}
</script>
</head>
<body>
<div>
<p><a id="linkSwitched" href="#"><img src="Vorschaubild_Muster_400.png" width="400" height="127"></a></p>
</div>
</body>
</html>[/code]
'ǝɯɐu$ ıɥ
<p><a id="linkSwitched" href="#"><img src="Vorschaubild_Muster_400.png" width="400" height="127"></a></p>
Drängeln ist hier nicht gerne gesehen. Du musst nicht diese Zeile verändern sondern die Stelle im Script an der der Link zusammengebaut wird.
var ipad = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var iphone = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var others = {
"pathHTM":"../panorama",
"extHTM":"/pano.html",
"target":"_self"
dort musst du die Variable anflanschen. Was willst du eigentlich erreichen? Mir erscheint das nicht sehr sinnvoll.
ssnɹƃ
ʍopɐɥs
Sorry wenn das "gedrängelt" rüberkam - war nicht so gemeint. Ich wollte eigentlich nur nochmal genauer erläutern, wass ich beabsichtige, da ich das Gefühl hatte es mangels Erfahrung zu undurchsichtig formuliert zu haben.
Der gepostete Code ist eine Linkseite mit mehreren Links zu unterschiedlichen Panoramafotos (unterschiedliche Auflösungen je Device).
Das bisherige Skript stellt fest welches Device (iPhone/iPad oder PC) zugreift und verändert den Link entsprechend.
Damit kann ich aber momentan nur den einen Link auf der Seite anpassen.
Ich habe jedoch mehrere Panoramabilder (in jeweils den untersch. Auflösungen). Also wollte ich mehrere Links zu den einzelnen Verzeichnissen erstellen ohne dabei das Skript für die Device-Unterscheidung für jedes Verzeichnis neu erstellen zu müssen. Momentan ist ja im Script die statische Variable dirname, die in den Link ein Verzeichnis einfügt. Diese soll geändert werden in abhängigkeit vom verlinkten Objekt:
Vorschaubild A -> Link zu Dir A -> automatisch je Device zur richtigen Seite
Vorschaubild B -> Link zu Dir B -> automatisch je Device zur richtigen Seite
etc.
Kriege ich das überhaupt so hin, wenn ich die Variable im Script hinterlege?
Oder kann ich per Get noch einen weiteren Wert aus dem Link auslesen?
Kann such sein, dass die Herangehensweise zu umständlich ist? Ich suche schlichtweg nach einer Idee das innerhalb einer Seite zu lösen.
Gruß Airbear
'ǝɯɐu$ ıɥ
'ǝɯɐu$ ıɥ
Der gepostete Code ist eine Linkseite mit mehreren Links zu unterschiedlichen Panoramafotos (unterschiedliche Auflösungen je Device).
OK
Das bisherige Skript stellt fest welches Device (iPhone/iPad oder PC) zugreift und verändert den Link entsprechend.
War klar und leitet alles auf eine bestimmte Seite um
Damit kann ich aber momentan nur den einen Link auf der Seite anpassen.
Nein, du kannst alle Links einer Seite so verändern.
Ich habe jedoch mehrere Panoramabilder (in jeweils den untersch. Auflösungen). Also wollte ich mehrere Links zu den einzelnen Verzeichnissen erstellen ohne dabei das Skript für die Device-Unterscheidung für jedes Verzeichnis neu erstellen zu müssen. Momentan ist ja im Script die statische Variable dirname, die in den Link ein Verzeichnis einfügt. Diese soll geändert werden in abhängigkeit vom verlinkten Objekt:
Vorschaubild A -> Link zu Dir A -> automatisch je Device zur richtigen Seite
Vorschaubild B -> Link zu Dir B -> automatisch je Device zur richtigen Seite
etc.
Ok, und warum schriebst du dann sie im Querystring haben zu wollen?
Kriege ich das überhaupt so hin, wenn ich die Variable im Script hinterlege?
Oder kann ich per Get noch einen weiteren Wert aus dem Link auslesen?Kann such sein, dass die Herangehensweise zu umständlich ist? Ich suche schlichtweg nach einer Idee das innerhalb einer Seite zu lösen.
Du willst also das, je nach Device in anderer Auflösung, nach klick auf das Thumbnail ein Panoramabild angezeigt wird und dieses ist in einer HTMLDatei eingebetet.
Das wird so IMHO nicht klappen, nicht ohne das Script umfänglich zu verändern. Du hättest ja mehrere links ala
<a id="linkSwitched" href="#"><img src="Vorschaubild_Muster_400.png" ></a>
<a id="linkSwitched" href="#"><img src="Vorschaubild_Muster_500.png" ></a>
notiere die Links ganz normal und frage das Device erst in der jeweiligen Datei die das Bild anzeigt ab. Ich hoffe ich hab dich richtig verstanden.
<a id="linkSwitched" href="../bilder/bild_400.html"><img src="Vorschaubild_Muster_400.png" ></a>
<a id="linkSwitched" href="../bilder/bild_500.html"><img src="Vorschaubild_Muster_500.png" ></a>
ssnɹƃ
ʍopɐɥs
Hallo,
[Panoramabild] und dieses ist in einer HTMLDatei eingebetet.
Amen.
*scnr*
Martin
'ǝɯɐu$ ıɥ
[Panoramabild] und dieses ist in einer HTMLDatei eingebetet.
Hä? Wie meinen?
ssnɹƃ
ʍopɐɥs
[Panoramabild] und dieses ist in einer HTMLDatei eingebetet.
Hä? Wie meinen?
Es kirchelt in SelfHTML
amen
'ǝɯɐu$ ıɥ
[Panoramabild] und dieses ist in einer HTMLDatei eingebetet.
Hä? Wie meinen?Es kirchelt in SelfHTML
Danke und Amen.
ssnɹƃ
ʍopɐɥs
Du willst also das, je nach Device in anderer Auflösung, nach klick auf das Thumbnail ein Panoramabild angezeigt wird und dieses ist in einer HTMLDatei eingebetet.
Richtig - so war es geplant. nur dass eben durch den Link hinter dem Thumbnail das Verzeichnis definiert wird innerhalb dessen dann die automatische Device-Auswahl die richtige Seite für die Auflösung wählt.
Das wird so IMHO nicht klappen, nicht ohne das Script umfänglich zu verändern. Du hättest ja mehrere links ala
notiere die Links ganz normal und frage das Device erst in der jeweiligen Datei die das Bild anzeigt ab. Ich hoffe ich hab dich richtig verstanden.
Du hast mich da auf eine Idee gebracht - ich könnte das ganze statt auf zwei Seiten zu verteilen in zwei getrennte Funktionen trennen und dann per Onclick ansprechen.
Etwa so:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<title>Linkswitcher</title>
[code lang=javascript]<script type="text/javascript" language="JavaScript">
window.onload = function () {
getDevice();
}
var active;
function getDevice() {
var ipad = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var iphone = {
"pathHTM":"../panorama",
"extHTM":"mobile.html",
"target":"_top"
};
var others = {
"pathHTM":"../panorama",
"extHTM":"pano.html",
"target":"_self"
};
var myAgent = navigator.userAgent.toLowerCase();
if( myAgent.indexOf('ipad') >= 0 ) {
active = ipad;
} else if( myAgent.indexOf('iphone') >= 0 ) {
active = iphone;
} else {
active = others;
}
}
function updateLink(obj,dirname) {
obj.href = active['pathHTM'] + "/" + dirname + "/" + active['extHTM'];
obj.target = active['target'];
return true;
}
</script>
</head>
<body>
<div>
<p><a href="#" onClick="javascript:updateLink(this,'verzeichnis');" ><img src="Vorschaubild\_Muster\_400.png" width="400" height="127" border="0"></a>
</p>
</div>
</body>
</html>[/code]
So kann ich bei jedem Vorschaubild über href das Verzeichnis festlegen.
Gruß Airbear