L'accès parent variable locale dans la fenêtre enfant
Je voudrais utiliser une variable locale d'un parent dans la fenêtre enfant. J'ai utilisé parent.window.opener
mais il renvoie undefined
.
C'est mon 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>
et c'est un enfant:
<body>
<script type="text/javascript">
var selectedVal = parent.window.opener.selectedVal;
alert(selectedVal);
</script>
</body>
Êtes-vous sûr que vous voulez à la fois
parent
et opener
? Aussi, êtes-vous en train de lire selectedValue
avant qu'il est réglé à une valeur?OriginalL'auteur mOna | 2014-11-11
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas l'idée, avec des variables locales, c'est qu'ils ne sont disponibles que quelle que soit la portée de la fonction qu'elles sont déclarées dans - et de fonctions à l'intérieur de cette fonction.
Dans votre cas, sélectionnez
selectedVal
est disponible uniquement à l'intérieur de cette déclaration de fonction:De l'utiliser en dehors de ce périmètre, vous devez vous faire à l'échelle mondiale par l'attacher à la fenêtre:
Vous pouvez également faire des variables implicitement mondial en laissant la
var
mot-clé - cependant c'est une mauvaise pratique et n'est pas autorisé en mode strict.Cela vous permettra de vous accédez à
window.selectedVal
par:window.selectedVal = ui.item.value;
au lieu devar selectedVal = ui.item.value;
?Merci beaucoup pour votre explication, il a travaillé 🙂
OriginalL'auteur max
essayez ceci:
OriginalL'auteur Vano Atabegashvili