airbear: Variable aus Link an Script übergeben

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>
  1. 'ǝɯɐ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

    --
    I like children. If they're properly cooked.
    - W.C. Fields
    1. 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>

  2. 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]

    1. 'ǝɯɐ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

      --
      I like children. If they're properly cooked.
      - W.C. Fields
      1. 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

        1. 'ǝɯɐ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

          --
          I like children. If they're properly cooked.
          - W.C. Fields
          1. Hallo,

            [Panoramabild] und dieses ist in einer HTMLDatei eingebetet.

            Amen.

            *scnr*
             Martin

            --
            Wer es in einem Unternehmen zu etwas bringen will, muss so tun, als hätte er es schon zu etwas gebracht.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. 'ǝɯɐu$ ıɥ

              [Panoramabild] und dieses ist in einer HTMLDatei eingebetet.

              Hä? Wie meinen?

              ssnɹƃ
              ʍopɐɥs

              --
              I like children. If they're properly cooked.
              - W.C. Fields
              1. [Panoramabild] und dieses ist in einer HTMLDatei eingebetet.
                Hä? Wie meinen?

                Es kirchelt in SelfHTML

                amen

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
                1. 'ǝɯɐu$ ıɥ

                  [Panoramabild] und dieses ist in einer HTMLDatei eingebetet.
                  Hä? Wie meinen?

                  Es kirchelt in SelfHTML

                  Danke und Amen.

                  ssnɹƃ
                  ʍopɐɥs

                  --
                  I like children. If they're properly cooked.
                  - W.C. Fields
          2. 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