2015-10-18 10 views
6

डोम के लिए एक दृश्य स्टूडियो में 2015 "जावास्क्रिप्ट सार्वभौमिक विंडोज" आवेदन मैं इस बहुत ही सरल कोड है:दृश्य स्टूडियो 2015 जावास्क्रिप्ट का उपयोग तत्वों

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 

    <!-- WinJS references --> 
    <link href="WinJS/css/ui-dark.css" rel="stylesheet" /> 
    <script src="WinJS/js/base.js"></script> 
    <script src="WinJS/js/ui.js"></script> 

    <!-- aaaaa references --> 
    <link href="/css/default.css" rel="stylesheet" /> 
    <script src="/js/default.js"></script> 
</head> 

<body class="win-type-body"> 

    <div id="myDiv">BEFORE</div> 

    <script>    

     window.onload = function() { 
      document.getElementById("myDiv").innerHTML = "AFTER"; 
     }; 


    </script> 
</body> 

</html> 

अगर मैं आवेदन, "स्थानीय मशीन" या किसी भी विंडोज चुनने चलाने फोन एमुलेटर, मैं "इससे पहले" देखता हूं: रेखा जो कि div के आंतरिक HTML को परिवर्तित करती है उसे निष्पादित नहीं किया जाता है।

अन्यथा, यदि मैं एक ब्राउज़र विंडो में विजुअल स्टूडियो के बाहर एचटीएमएल फाइल निष्पादित करता हूं, तो मुझे "इसके बाद" दिखाई देता है: यह इंटरनेट एक्सप्लोरर 11 के व्यवहार में थोड़ा अपवाद के साथ सभी ब्राउज़रों के लिए सच है: इस मामले में मुझे संदेश दिखाई देता है "इंटरनेट एक्सप्लोरर ने इस वेब पेज को स्क्रिप्ट या सक्रिय नियंत्रणों को चलाने से प्रतिबंधित किया", और जब मैं "सामग्री को अनुमति देता हूं" पर क्लिक करता हूं तो मुझे "बाद में" दिखाई देता है।

यह बहुत आसान स्क्रिप्ट विजुअल स्टूडियो में क्यों काम नहीं करती है? क्या यह आईई में सुरक्षा प्रतिबंधों का मामला है? और मुझे इस मुद्दे के बारे में विजुअल स्टूडियो में बिल्कुल कोई संदेश क्यों नहीं दिख रहा है? मैं विजुअल स्टूडियो में इस समस्या को कैसे हल कर सकता हूं?

उत्तर

4

मैंने आपके कोड का परीक्षण किया है। यह सच है लेकिन आपको जावास्क्रिप्ट फ़ाइलों के अंदर अपना कोड लिखना चाहिए। बस window.js की शुरुआत में विंडो को डाउनलोड करें।

+0

धन्यवाद। यह अविश्वसनीय है कि विजुअल स्टूडियो इस मामले में एक संदेश नहीं दिखाता है!मेरे असली ऐप में मुझे जावास्क्रिप्ट की 2 लाइनों की आवश्यकता है, इस कारण से मैंने उन्हें HTML फ़ाइल में छोड़ा। – Sean

0

एक संभावित कारण js स्क्रिप्ट टैग के अंदर कोड हो सकता है जो window.onload विधि को ओवरराइट कर रहा है। आप स्क्रिप्ट टैग में सापेक्ष और पूर्ण पथ के मिश्रण का उपयोग कर रहे हैं। तो जब दृश्य स्टूडियो के बाहर चलते हैं तो इन फ़ाइलों को शामिल नहीं किया जा सकता है, इसलिए खिड़की.ऑलोड लोड नहीं किया गया है। डिबग के लिए कुछ कदम होगा: त्रुटियों के लिए

  1. चेक वेब डेवलपर कंसोल, नेटवर्क त्रुटियों आदि
  2. निकालें अन्य सभी स्क्रिप्ट टैग और परीक्षण (आईई में स्मृति F12 से)।
  3. window.onload के बजाय window.addEventListener("load", function{ }, false); आज़माएं।
+0

धन्यवाद। मैंने कोड को निम्नानुसार डिफ्रेट किया है, लेकिन व्यवहार बिल्कुल वही है और F12 में कोई त्रुटि नहीं है। यहां तक ​​कि बटन की ऑनक्लिक घटना भी अनुकरणकर्ताओं और स्थानीय मशीन में काम नहीं करती है।

BEFORE
Sean

4

यह वास्तव में एक त्रुटि नहीं है, इसलिए वीएस 2015 इसे संकेत नहीं देगा।

तथ्य यह है कि इनलाइन स्क्रिप्ट यूनिवर्सल Apps का में अनुमति नहीं है, क्योंकि यह सीएसएस (क्रॉस-साइट स्क्रिप्टिंग) हमलों के a common cause है।

माइक्रोसॉफ्ट दस्तावेज के लिंक के अंत में Remarks के पहले देखें।

कुछ कामकाजों पर चर्चा की जाती है here

संबंधित मुद्दे