Ich verwende window.open
, um ein untergeordnetes Fenster vom übergeordneten Fenster zu öffnen. Ich möchte, dass das Kindfenster oben bleibt, damit der Benutzer darauf verweisen kann, während er im Elternfenster einen Eintrag macht. Kann das gemacht werden? Ich benutze Firefox im Moment, aber es wäre ein Bonus, wenn es in allen Browsern funktioniert.Wie wird das Kindfenster oben bleiben?
Antwort
Diese Popup-Ebene ist auch gut: DOMWindowDemo.
http://StackOverflow.com/Questions/how-to-answer –
Ich werde das +1 geben, weil ich weiß, dass es eines Tages nützlich sein wird, obwohl keiner von ihnen das ist, was ich für diese Aufgabe im Sinn hatte. –
ja Sie können dies tun, indem dieser Code, den Sie geben haben onBlur = "self.focus()" in Körper für Kinder Fenster
//Parent page...
<html>
<body>
<a href="#" onClick="window.open('two.html','sdvwsv','width=200,height=200');">here...</a>
</body>
</html>
//Child page...
<html>
<body onBlur="self.focus();">
here...
</body>
</html>
Dies scheint nicht zu funktionieren, wie ich erwartet hatte, wenn ich zurück auf das übergeordnete Fenster klicke, ist das untergeordnete Fenster verloren. –
hier ist das Problem, Inhalt von Kind zu Eltern zu schreiben, so ist es genug, und wenn es kein Elternteil gibt, dann gibt es kein Kind existiert. –
<html>
<script language="JavaScript">
<!--
function openWin(){
var myBars = 'directories=no,location=no,menubar=no,status=no';
myBars += ',titlebar=no,toolbar=no';
var myOptions = 'scrollbars=no,width=400,height=200,resizeable=no,top=10, left=10,';
var myFeatures = myBars + ',' + myOptions;
var myReadme = 'This is a test.'
var newWin = open('', 'myDoc', myFeatures);
newWin.document.writeln('<form>');
newWin.document.writeln('<table>');
newWin.document.writeln('<tr valign=TOP><td>');
newWin.document.writeln('<textarea cols=45 rows=7 wrap=SOFT>');
newWin.document.writeln(myReadme + '</textarea>');
newWin.document.writeln('</td></tr>');
newWin.document.writeln('<tr><td>');
newWin.document.writeln('<input type=BUTTON value="Close"');
newWin.document.writeln(' onClick="window.close()">');
newWin.document.writeln('</td></tr>');
newWin.document.writeln('</table></form>');
newWin.document.close();
newWin.focus();
}
-->
</script>
<body>
<form>
<b>Click the following button to open a new window: </b>
<input type=BUTTON value="Open" onClick='openWin()'>
</form>
</body>
Vielen Dank für die Antwort, aber das ist nicht, was ich wollte. Dadurch wird ein neues Fenster mit einem Textfeld erstellt, das jedoch verloren geht, wenn ich in das übergeordnete Fenster klicke. Ich möchte, dass das Kindfenster oben bleibt, damit der Benutzer darauf verweisen kann, während er im Elternfenster einen Eintrag macht. –
<html>
<script language="JavaScript">
<!--
function openWin(){
var myBars = 'directories=no,location=no,menubar=no,status=no';
myBars += ',titlebar=no,toolbar=no';
var myOptions = 'scrollbars=no,width=600,height=400,resizeable=no,top=10, left=10';
var myFeatures = myBars + ',' + myOptions;
var newWin = open('test.html', '', myFeatures);
newWin.document.close();
newWin.focus();
}
-->
</script>
<body>
<form>
<b>Click the following button to open a new window: </b>
<input type=BUTTON value="Open" onClick='openWin()'>
</form>
</body>
</html>
</html>
Danke, aber ich bin mir nicht sicher, ob du verstehst, was ich will. "Ich möchte, dass das untergeordnete Fenster oben bleibt, damit der Benutzer darauf verweisen kann, während er im übergeordneten Fenster einen Eintrag erstellt." –
Ich rang mit diesem für eine lange Zeit. Es scheint ein Fehler in FF zu sein, aber ich habe bemerkt, dass nach dem Öffnen des neuen Fensters, wenn ich darauf klicke, es den Fokus erhält und an die Spitze kommt. Allerdings hat das Aufrufen von window.focus() nicht funktioniert, also habe ich vermutet, dass es zu früh passiert ist. Es fühlt sich nicht wie solide Praxis
So in dem neuen Fenster Code am unteren Rand der Seite I
setTimeout(function(){window.focus()},100);
hinzugefügt, aber wenn Sie es brauchen zu arbeiten ... Die 100mSec scheint der zu sein, niedrigste, die auf meinem System funktioniert.
Es scheint auch, es funktioniert nur, wenn die open() Anfrage von Inside ein Event-Handler gemacht wird. Außerdem muss sich der Event-Handler auf einem Objekt befinden, das selbst Fokus akzeptiert, wie Eingabeelemente usw. –
Auch wenn Sie Event-Ahndler an Dinge wie divs anhängen, können sie den Fokus nicht akzeptieren und daher funktioniert das Obige nicht. –
Sie können auf das neue Fenster fokussieren, aber dann können Sie im übergeordneten Fenster nichts eingeben oder tun. –
Wie wäre es mit einem [popup div] (http://jqueryui.com/dialog/#default) anstatt ein neues Fenster zu öffnen? – 3dgoo
Dies ist das Beste, was Sie mit Windows tun können: http://jsfiddle.net/DerekL/WFsyY/ –