我在main中创建了全局变量,例如:
主页1.js上的
$(#search).click(){
text = "string from main";
openChildWindow(searchwindow.jsp);
});
在mainPage2.js上
$(#search).click(){
text = "string from main";
openChildWindow(searchwindow.jsp);//same window opening by mainPage1
});
在commonSearch.js上,我访问var以显示在输入
中$("#myInput").val(window.opener.text);
window.opener.text = ""; // and just reset thevalue to empty
为了避免使用w3.org中的全局变量,我可以使用对象文字,所以我想出这样的:
在mainPage1.js上
myNameSpace = function(){
var text= null;
function init(){...}
return{ init:init }
}();
在mainPage2.js上
myNameSpace = function(){
var text= null;
function init(){...}
return{ init:init }
}();
所以关于commonSearch.js
我只是使用myNameSpace.text
来访问它?
由于生病使用不同页面调用的常见搜索窗口,我没有重命名我的命名空间,我想我无法解决全局变量,但我只是创建了一个全局对象。有人可以请教我这个。
答案 0 :(得分:1)
如果要获取并设置text
的值(来自对象文字的外部),您还可以返回一个返回值text
的函数和另一个函数来设置值text
。
var myNameSpace = function() {
var text = 'nothing';
function init() {
text = 'init';
}
return {
init: init,
getText: function() {
return text;
},
setText: function(newText) {
text = newText;
}
}
}();
console.log(myNameSpace.getText());
myNameSpace.init();
console.log(myNameSpace.getText());
myNameSpace.setText('set');
console.log(myNameSpace.getText());