Entwickler-Ecke
Programmiersprachen (Client) - Per JS Cursor (Focus) auf Input in Iframe setzen
WeBsPaCe - Mi 10.06.09 09:49
Titel: Per JS Cursor (Focus) auf Input in Iframe setzen
Tach,
nachdem ich
hier [
http://www.delphi-forum.de/viewtopic.php?t=88015&start=0&postorder=asc] schonmal ein ähnliches Problem hatte nun das:
index.html
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>
<script type="text/javascript">
function popiframe (handle) { document.getElementById('zielframe').style.display = 'block'; window.frames['zielframe'].document.getElementById('search').focus(); //document.getElementById('zielframe').contentWindow.document.getElementById('search').focus(); }
/* function setStartupFocus () { e = document.getElementsByTagName('iframe'); for (i=0; i<e.length; i++) { if (e[i].style.display == 'block') { e[i].contentWindow.document.getElementById('search').focus(); } } } window.onload = setStartupFocus; */
</script>
<title>none</title> </head>
<body> <button id="knopf" onclick="popiframe(this);">Hui</button> <iframe id="zielframe" src="zielframe.html" style="display: none;"></iframe> </body>
</html> |
zielframe.html
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>
<script type="text/javascript">
/* function setStartupFocus () { document.getElementById('search').focus(); } window.onload = setStartupFocus; */
</script>
<title>none</title> </head>
<body> <p> <input type="text" id="search" /> </p> </body>
</html> |
Ein Iframe erscheint per
display:none auf
display:block und das Input darin soll den Focus bekommen.
So wie ihr es jetzt da seht funktioniert es im IE, aber im FF nicht. Die auskommentierten Zeilen hab ich schon als Alternativen versucht.
Interessant ist, dass bei gleich von Anfang an gezeigtem Iframe (
style="display: block;") es in beiden Browsern funktioniert. (Ein Indiz für was? :gruebel: )
Jemand eine Idee?
Danke schonmal,
mfG,
WeBBy
BenBE - Mi 10.06.09 14:51
Was sagt die JS-Fehlerkonsole bzw. Firebug zu deiner Page?
Irgendwelche Meldungen?
Horschdware - Mi 10.06.09 15:09
Interessant ist,dass das hier bei zweimaligem Drücken des Buttons im FF zu einem richtigen Focus führt. Aber man muss dumemrweise zwei mal klicken
Quelltext
1: 2: 3: 4: 5:
| function popiframe (handle) { document.getElementById('zielframe').style.display = 'block'; frames[0].document.getElementById('search').focus();
} |
Edit:
Folgende Lösung ist zwar ein wenig doof, funktioniert aber ;-)
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function popiframe (handle) { document.getElementById('zielframe').style.display = 'block'; frames[0].document.getElementById('search').focus();
window.setTimeout("setThatFocus()", 100); }
function setThatFocus() { frames[0].document.getElementById('search').focus(); } |
WeBsPaCe - Mi 10.06.09 22:37
Tach,
BenBE hat folgendes geschrieben : |
Was sagt die JS-Fehlerkonsole bzw. Firebug zu deiner Page?
Irgendwelche Meldungen? |
Konsole keine und Firebug kannte ich bis jetzt nicht, hab allerdings nach
diesem Tutorial [
http://alternateidea.com/blog/articles/2006/05/12/an-in-depth-look-at-the-future-of-javascript-debugging-with-firebug] auch nichts weiter rausbekommen. Vielleicht blick ich's auch einfach nicht...
Horschdware hat folgendes geschrieben : |
Interessant ist,dass das hier bei zweimaligem Drücken des Buttons im FF zu einem richtigen Focus führt. Aber man muss dumemrweise zwei mal klicken |
Ja, sorry, das hab ich noch vergessen zu erwähnen: diesen Workaround wollte ich mit der neuen Lösung umgehen. :wink:
(Dass es ab den zweiten Mal Klicken funktioniert hab ich beim Frustabbau an der Maus gleich gemerkt, hehe...)
MfG,
WeBBy
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!