RadioButton auf anderer Seite auslösen
Hi JavaScript Experten,
ich befasse mich gerade ein wenig mit dem Thema JavaScript. Ich habe mir jetzt mit HTML und CSS eine kleine Seite gebastelt. Jetzt würde mich mal interessieren, wie ich mit JavaScript einen RadioButton auf einer anderen Seite ansprechen kann.
Auf Seite 1 habe ich z.b. einen RadioButton, wenn ich diesen Button anklicke dann soll auf Seite 2 der Radiobutton per Script gechecked werden.
Also
Auf einer einzigen Seite würde ich das so machen:
Ich danke euch schon mal für die Hilfe.
ich befasse mich gerade ein wenig mit dem Thema JavaScript. Ich habe mir jetzt mit HTML und CSS eine kleine Seite gebastelt. Jetzt würde mich mal interessieren, wie ich mit JavaScript einen RadioButton auf einer anderen Seite ansprechen kann.
Auf Seite 1 habe ich z.b. einen RadioButton, wenn ich diesen Button anklicke dann soll auf Seite 2 der Radiobutton per Script gechecked werden.
Also
Auf einer einzigen Seite würde ich das so machen:
<input type="radio" name="radioButton1" id="test">
<button type="button" name="button" onclick="checkradio()">TEST</button>
<script type="text/javascript">
function checkradio() {
rbtn = document.getElementById("test");
rbtn.checked = true;
}
</script>
Ich danke euch schon mal für die Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 304105
Url: https://administrator.de/contentid/304105
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
Wenn die andere Seite nicht in deinem Webspace liegt, gar nicht, denn dann greift der Sicherheitsmechanissmuss CORS der XSS (Crossite Scripting) aus Sicheheitsgründen verhindert. Nur wenn eine Seite explizit über den Response-Header den JavaScript-Zugriff von anderen Domains aus erlaubt wird das was mit DOM-Manipulation per javaScript, und das tun 99,9% der Seiten nicht, und das ist auch gut so.
Wenn die Seite die du on the fly manipulieren willst auf deinem Webserver liegt ist das kein Problem, dann müsstest du die Seite aber in einen IFrame oder ein anderes Fenster laden um darauf zuzugreifen und den Radiobutton zu setzen.
Du kannst natürlich, wenn es deine Seite ist die andere Seite so aufbauen das diese den Radiobutton anhand von GET-Parametern setzt und du dann einfach per URL-Aufruf und einem URL-Parameter diesen entsprechend setzen kannst.
Wenn du andere Seiten manipulieren willst bist du mit ClientSide-JavaScript-Browseraddons wie Greasemonkey besser bedient.
Oder du machst es über IE-Automation.
Wenn die Seite die du on the fly manipulieren willst auf deinem Webserver liegt ist das kein Problem, dann müsstest du die Seite aber in einen IFrame oder ein anderes Fenster laden um darauf zuzugreifen und den Radiobutton zu setzen.
Du kannst natürlich, wenn es deine Seite ist die andere Seite so aufbauen das diese den Radiobutton anhand von GET-Parametern setzt und du dann einfach per URL-Aufruf und einem URL-Parameter diesen entsprechend setzen kannst.
Wenn du andere Seiten manipulieren willst bist du mit ClientSide-JavaScript-Browseraddons wie Greasemonkey besser bedient.
Oder du machst es über IE-Automation.
Hier mal ein Beispiel wie man es direkt (ohne URL-Parameter) machen kann, es besteht aus zwei Seiten
Seite1.html
Seite2.html
Ein Beispiel mit URL-Parametern reiche ich noch nach.
Seite1.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Seite 1</title>
</head>
<script type="text/javascript">
function setRadioInOtherPage(){
var btnChange = document.getElementById("btnChange");
var otherWindow = window.open("seite2.html");
otherWindow.onload = function(){
otherWindow.document.getElementById("radio2").checked = true;
};
}
</script>
<body>
<input type="button" name="btnCheck" id="btnChange" value="Ändere Radiobutton auf Seite 2" onClick="setRadioInOtherPage()" />
</body>
</html>
Seite2.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Seite 2</title>
</head>
<body>
<input type="radio" name="radio2" id="radio2" />
Ich werde automatisch geändert
</body>
</html>
Ein Beispiel mit URL-Parametern reiche ich noch nach.
Und hier kommt noch das Beispiel mit URL-Parameter:
Die Seite sollte man dann so aufrufen:
Wenn der Wert des Parameters "checked" ist wird der Radiobutton aktiviert ansonsten bleibt er so wie er war.
Die Seite sollte man dann so aufrufen:
http://deineseite.local/seitexyz.html?radio=checked
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>URL-Parameter-Demo</title>
</head>
<script type="text/javascript">
function init(){
var radio1 = document.getElementById("radio1");
var url_parameter = getUrlVars();
if (url_parameter['radio'] != null){
var checked = (url_parameter['radio'] == "checked") ? true : false;
radio1.checked = checked;
}
}
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;
}
</script>
<body onLoad="init()">
<input type="radio" name="radio2" id="radio1" />
Ich werde automatisch geändert
</body>
</html>
Was ist daran aufwändig ? Normalerweise macht man das Auswerten der URL-Parameter auf der Zielseite ja eher mit einer serverseitigen Programmiersprache wie PHP und nicht mit JavaScript.
Vielen Danke für eure Hilfe.
Keine Ursache.