I would like to use a local variable of a parent in child window. I used parent.window.opener
but it returns undefined
.
This is my 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>
and this is a child:
<body>
<script type="text/javascript">
var selectedVal = parent.window.opener.selectedVal;
alert(selectedVal);
</script>
</body>
You can't - the whole idea with local variables is that they are only available in whatever function scope they are declared in - and functions inside that function.
In your case select selectedVal
is only available inside this function declaration:
select: function (event, ui){
var selectedVal = ui.item.value;
alert(selectedVal);
}
To use it outside this scope you need to make it global by attaching it to the window:
window.selectedVal = 'somevalue';
You can also make variables implicitly global by leaving out the var
keyword - however this is a poor practice and is not allowed in strict mode.
This will allow you to you access window.selectedVal
by:
window.opener.selectedVal // for windows opened with window.open()
window.parent.selectedVal // iframe parent document
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With