peter32
Goto Top

Per URL direkt Button klicken

Hallo,

ich habe leider im Internet nur folgendes gefunden:

Man kann per "...URL....?fieldname=someinput" im Link direkt über die URL ein FormField direkt beim Aufruf ausfüllen.

Allerdings benötige ich etwas anderes für mein Vorhaben:

Ich möchte eine URL erstellen, welche einen bestimmten Button dieser Seite beim Aufruf dieser URL "klicken" soll.

Die aufgerufene Seite hat sieht so aus (s. Anhang).

Wenn man auf die URL normal geht, dann wird automatisch Button 1 (orange soll aktiv darstellen) aufgerufen. Ich möchte aber, dass durch irgendwelche Parameter direkt Button 2 beim Aufruf geklickt werden soll. Die Grünen Linien sind FormFields, welche bei Button 1 anders aussehen wie bei Button 2.

Der Code dieser zwei Buttons lautet (wenn man die URL öffnet):
<ul class="two-buttons">  

	<li class="active">  
		<a href="#" class="opener" ct_id="button1">Hier steht etwas auf Button 1</a>  
		<div class="slide" style="display: none;">  
			Some Content here
		</div>
	</li>

	<li class="">  
		<a href="#" class="opener" ct_id="button2">Hier steht etwas auf Button 2</a>  
		<div class="hidden javaslide" style="display: none;">  
			Some Content here
		</div>
	</li>

</ul>


Jemand eine Idee, wie das relativ simpel umgesetzt werden kann?

Danke im Voraus!

LG
Peter
illustration2

Content-Key: 338566

Url: https://administrator.de/contentid/338566

Printed on: April 16, 2024 at 22:04 o'clock

Member: colinardo
colinardo May 22, 2017 updated at 09:12:27 (UTC)
Goto Top
Servus Peter,
hier ein einfaches Beispiel wie du es mit reinem JavaScript machst.
Speichere die Seite und dann übergib ihr beim Aufruf im Querystring die ID des Buttons welcher "virtuell" geklickt werden soll:
http://domain.tld/demo.html?button=btn2
<!doctype html>
<html>
<head>
<meta charset="utf-8">  
<title>Demo</title>
</head>
<script type="text/javascript">  
// function to parse query string
function getUrlVars()
{
    var vars = , hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');  
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');  
        vars.push(hash);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
//function to check parameter 'button'  
function checkParameters(){
	var params = getUrlVars();
	if (params['button'] != null){  
		document.getElementById(params['button']).click();  
	}
}
</script>

<body onLoad="checkParameters()">  
<input type="button" id="btn1" value="Button1" onClick="alert('Button1 clicked')" />  
<input type="button" id="btn2" value="Button2" onClick="alert('Button2 clicked')" />  
</body>
</html>
Wozu das ganze einen "Klick" ausführen soll anstatt die jeweilige Funktion direkt auszuführen, bleibt wohl dein Geheimnis ...

Grüße Uwe
Member: Peter32
Peter32 May 22, 2017 at 09:32:15 (UTC)
Goto Top
Hallo Uwe,

vielen herzlichen Dank für deine ausführliche Lösung!

Um das Geheimnis zu lüften möchte ich erst einmal ein Missverständnis aus dem Weg räumen: Mir ist es relativ gleich, auf welchem Wege ich den Inhalt durch Button 2 zu sehen bekomme. Was genau meinst du damit, die jeweilige Funktion direkt auszuführen? Vielleicht ist das sogar der einfachere und elegantere Weg?

Ich habe zudem glaube ich vergessen zu erwähnen, dass ich die Zielseite, wo die zwei Buttons sind, nicht bearbeiten kann/darf. Uwe, hast du gemeint, dass ich deinen Code in die Zielseite oder die Seite einbauen soll, von der die URL geöffnet werden soll?

Viele Grüße
Peter
Member: colinardo
colinardo May 22, 2017 updated at 09:44:27 (UTC)
Goto Top
Zitat von @Peter32:
Was genau meinst du damit, die jeweilige Funktion direkt auszuführen? Vielleicht ist das sogar der einfachere und elegantere Weg?
Naja irgendeine Funktion wird dem Button ja hinterlegt sein. Wenn man den jeweiligen Code analysiert kommt man dazu.
Ich habe zudem glaube ich vergessen zu erwähnen, dass ich die Zielseite, wo die zwei Buttons sind, nicht bearbeiten kann/darf.
Na dann hast du ja sowieso keine Chance. Schon mal an CORS und die Same-Origin-Policy gedacht?! Vermutlich nicht... Über Client-Side JavaScript wie Greasemonkey dagegen lässt sich das machen.
Uwe, hast du gemeint, dass ich deinen Code in die Zielseite oder die Seite einbauen soll, von der die URL geöffnet werden soll?
Nein, das war ein ganz einfaches Beispiel das dir die Methoden verdeutlichen soll, obiger Code gehört in die Seite auf dem die Buttons liegen. An deine Bedürfnisse musst du es selbstverständlich selbst anpassen.
Member: colinardo
colinardo Jul 23, 2017 at 10:45:07 (UTC)
Goto Top
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.