Zugriff auf übergeordneten lokalen Variablen in Kind-Fenster
Ich würde gerne eine lokale variable von einem übergeordneten in untergeordnete Fenster. Ich verwendet parent.window.opener
aber es gibt undefined
.
Dies ist mein code:
<script type="text/javascript">
var selectedVal;
$(document).ready(function () {
//....
//...
if ($(this).val() == "byActor"){
$("#tags").focus();
$("#tags").autocomplete({
source: "actorsauto.php",
minLength: 2,
focus: function( event, ui ){
event.preventDefault();
return false;
},
select: function (event, ui){
var selectedVal = ui.item.value;
alert(selectedVal);
}
});
});
$('#btnRight').on('click', function (e) {
popupCenter("movieByactor.php","_blank","400","400");
});
</script>
</body>
</html>
- und das ist ein Kind:
<body>
<script type="text/javascript">
var selectedVal = parent.window.opener.selectedVal;
alert(selectedVal);
</script>
</body>
Sind Sie sicher, dass Sie beide
parent
und opener
? Auch, versuchen Sie zu Lesen selectedValue
bevor es auf einen Wert festgelegt ist?InformationsquelleAutor mOna | 2014-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht - die ganze Idee mit den lokalen Variablen ist, dass Sie nur verfügbar sind, in welcher Funktion Umfang der Deklaration in - und Funktionen innerhalb dieser Funktion.
In Ihrem Fall wählen Sie
selectedVal
ist nur innerhalb dieser Funktion Erklärung:Verwenden Sie es außerhalb dieses Bereichs müssen Sie global, indem Sie es in das Fenster:
Können Sie auch Variablen implizit global, durch das weglassen des
var
keyword - doch dies ist eine schlechte Praxis und ist nicht erlaubt in strict-Modus.Dies ermöglicht Ihnen den Zugriff
window.selectedVal
durch:window.selectedVal = ui.item.value;
stattvar selectedVal = ui.item.value;
?Vielen Dank für deine ausführliche Erklärung, es hat geklappt 🙂
InformationsquelleAutor max
versuchen Sie dies:
InformationsquelleAutor Vano Atabegashvili