मेरे पास वैरिएबल है जो मुझे लगता है कि वैश्विक है, इसलिए मेरे सभी बच्चे के कार्यों को उस चर को प्राप्त करने में सक्षम होना चाहिए, लेकिन मुझे एक संदर्भ त्रुटि मिल रही है, चर घोषित नहीं किया गया है यहां कोड नीचे है। कृपया मदद करें अगर मैं कोई गलत काम कर रहा हूं। धन्यवाद

<!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 ऑब्जेक्ट वैरिएबल कैसे प्राप्त कर सकता हूं ...

3
Parshuram Kalvikatte 16 मार्च 2017, 13:43
1
यह CH.js फ़ाइल के लिए वैश्विक नहीं है। आपको फ़ाइल के अंदर वेरिएबल घोषित करने की आवश्यकता है जो केवल उस फ़ाइल के लिए वैश्विक होगा
 – 
Kapila Perera
16 मार्च 2017, 13:46
क्या आपने अपने windowpo.js को अपने html में शामिल किया था जैसे आपने अपने ch.js को शामिल किया था?
 – 
Lotus91
16 मार्च 2017, 13:46
2
यह वैश्विक है, लेकिन केवल आपकी मूल साइट के लिए है न कि नव निर्मित पॉपअप के लिए। पॉपअप को एक नया निष्पादन संदर्भ मिलता है, इसलिए इसकी सीधे पुराने तक कोई पहुंच नहीं है। हालांकि आप postMessage() का उपयोग करके डेटा साझा कर सकते हैं।
 – 
Sirko
16 मार्च 2017, 13:48
पोस्टमैसेज का उपयोग करके कैसे साझा करें? क्या आप इसे समझा सकते हैं?
 – 
Parshuram Kalvikatte
16 मार्च 2017, 13:52
मैंने इसे Ch.js . में शामिल किया है
 – 
Parshuram Kalvikatte
16 मार्च 2017, 13:53

2 जवाब

सबसे बढ़िया उत्तर

इस रननेबल डेमो में जैसे window.opener का उपयोग करके विंडो के अंदर अपने रिफ्रेंस को एक्सेस करके आसान करना plnkr. अपने विंडो एप्लिकेशन के अंदर आप इसे window.opener.Test1Object के माध्यम से एक्सेस कर सकते हैं जहां window.opener जावास्क्रिप्ट इंस्टेंस का संदर्भ रखता है जहां इसे खोला गया था। इस तरह आप अपने मुख्य एप्लिकेशन में कॉन्फ़िगर किए गए सभी सामानों तक पहुंच सकते हैं:

राय

<!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);
1
lin 16 मार्च 2017, 14:27
window.opener वैसे भी मूल निष्पादन संदर्भ का संदर्भ है। तो वर्तमान में लाइन w.Test1Object = Test1Object; बेमानी है। लेकिन मुझे यह स्वीकार करना होगा कि मुझे नहीं पता था कि आप वास्तव में पूरे पुराने संदर्भ तक पहुंच सकते हैं।
 – 
Sirko
16 मार्च 2017, 14:19

किसी भी फाइल में शामिल करने से पहले आपको वेरिएबल घोषित करना होगा। शामिल फ़ाइलों के ऊपर बस एक स्क्रिप्ट टैग बनाएं, इसे वहां परिभाषित करें।

<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>

इस तरह आप सभी फाइलों के साथ उपयोग करने में सक्षम होना चाहिए

-1
Kapila Perera 16 मार्च 2017, 13:58
मैं नीचे मतदाता नहीं था, लेकिन मैंने इसका संदर्भ दिया है मेरे प्रश्न की जांच करें
 – 
Parshuram Kalvikatte
16 मार्च 2017, 13:58
आप स्क्रिप्ट टैग को गतिशील रूप से सही जोड़ रहे हैं? तो आप उस चर का उपयोग नहीं कर सकते। बस उपरोक्त संदर्भ को कड़ी कोडिंग करने का प्रयास करें इसे काम करना चाहिए
 – 
Kapila Perera
16 मार्च 2017, 14:02
नहीं अभी भी नहीं मिल रहा है
 – 
Parshuram Kalvikatte
16 मार्च 2017, 14:05
Document.write ('<स्क्रिप्ट src = \"windowpo.js\"><\/script>'); इस तरह आप मेरी जानकारी के अनुसार फ़ाइल लोड नहीं कर सकते। फ़ाइल लोड है या नहीं, यह जाँचने के लिए नेटवर्क टैब देखें
 – 
Kapila Perera
16 मार्च 2017, 14:07
यह को मुख्य साइट पर जोड़कर मेरे लिए काम कर रहा है
 – 
Kapila Perera
16 मार्च 2017, 14:17