मेरे पास वैरिएबल है जो मुझे लगता है कि वैश्विक है, इसलिए मेरे सभी बच्चे के कार्यों को उस चर को प्राप्त करने में सक्षम होना चाहिए, लेकिन मुझे एक संदर्भ त्रुटि मिल रही है, चर घोषित नहीं किया गया है यहां कोड नीचे है। कृपया मदद करें अगर मैं कोई गलत काम कर रहा हूं। धन्यवाद
<!DOCTYPE html>
<html>
<head>
<script>
var Test1Object = 'Testing'; // This is my variable
</script>
<script src = 'ch.js'>
</script>
</head>
<body>
<button onclick="openwindow()">Create window</button>
</body>
</html>
मेरे Ch.js
(function(){
alert(Test1Object) // Here i am getting this object
this.openwindow = function() {
w =window.open("untitled.html",'TheNewpop','height=315,width=625');
w.document.write(
"<body>"+
"<\/body>" +
"<script src = \"windowpo.js\"><\/script>" // THis is where i reference my windowpo.js
)
w.document.close();
w.focus();
}
})()
मेरी windowpo.js
(function(){
alert(Test1Object) // Here there is not Test1Object (Reference error)
})();
मेरी समस्या यह है कि मेरे windowp.js में मैं अपना टेस्ट 1 ऑब्जेक्ट वैरिएबल कैसे प्राप्त कर सकता हूं ...
2 जवाब
इस रननेबल डेमो में जैसे window.opener
का उपयोग करके विंडो के अंदर अपने रिफ्रेंस को एक्सेस करके आसान करना plnkr. अपने विंडो एप्लिकेशन के अंदर आप इसे window.opener.Test1Object
के माध्यम से एक्सेस कर सकते हैं जहां window.opener
जावास्क्रिप्ट इंस्टेंस का संदर्भ रखता है जहां इसे खोला गया था। इस तरह आप अपने मुख्य एप्लिकेशन में कॉन्फ़िगर किए गए सभी सामानों तक पहुंच सकते हैं:
- स्रोत: window.opener MDN संदर्भ
राय
<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="utf-8" />
<title>Custom Plunker</title>
<script type="text/javascript">
var Test1Object = 'Testing';
</script>
<script src="main.js"></script>
</head>
<body>
<a onclick="openwindow()">Open Window</a>
</body>
</html>
Main.js
this.openwindow = function() {
w = window.open(location.href+"untitled.html",'TheNewpop','height=315,width=625');
w.document.close();
w.focus();
}
Unitiled.html
Some Test
<script src="windowpo.js"></script>
Windowpo.js
alert(window.opener.Test1Object);
window.opener
वैसे भी मूल निष्पादन संदर्भ का संदर्भ है। तो वर्तमान में लाइन w.Test1Object = Test1Object;
बेमानी है। लेकिन मुझे यह स्वीकार करना होगा कि मुझे नहीं पता था कि आप वास्तव में पूरे पुराने संदर्भ तक पहुंच सकते हैं।
किसी भी फाइल में शामिल करने से पहले आपको वेरिएबल घोषित करना होगा। शामिल फ़ाइलों के ऊपर बस एक स्क्रिप्ट टैग बनाएं, इसे वहां परिभाषित करें।
<script type='text/javascript' >
var Test1Object = 'Testing';
</script>
<script type='text/javascript' src='js/Ch.js'></script>
<script type='text/javascript' src='js/windowpo.js'></script>
इस तरह आप सभी फाइलों के साथ उपयोग करने में सक्षम होना चाहिए
postMessage()
का उपयोग करके डेटा साझा कर सकते हैं।