Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
74
rated 0 times [  75] [ 1]  / answers: 1 / hits: 24467  / 10 Years ago, tue, november 11, 2014, 12:00:00

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>

More From » php

 Answers
5

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

[#68841] Friday, November 7, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
minab

Total Points: 701
Total Questions: 104
Total Answers: 91

Location: Saint Pierre and Miquelon
Member since Fri, Jan 28, 2022
2 Years ago
;