किसी HTA के अंदर JScript एम्बेड से Excel नहीं खोल सकता

Dec 02 2020

इस प्रश्न के बाद , मैं इस पृष्ठ पर VBScript कोड को JScript में बदलने का प्रयास कर रहा हूं । अगर मैं नीचे दिए गए .htaकोड को चलाता हूं :

<HTML>
<BODY>
    <INPUT id=button1 name=button1 type=button value=Button>
    <SCRIPT LANGUAGE="VBScript">
        sub button1_onclick()
            dim app
            set app = createobject("Excel.Application")
            app.Visible = true
            dim wb
            set wb = app.workbooks.add
            end sub
    </SCRIPT>
</BODY>
</HTML>

यह बटन पर क्लिक करने पर एक खाली एक्सेल शीट खोलता है। जैसा सोचा था। हालाँकि, अगर मैं VBScript पार्ट को JScript में कन्वर्ट करता हूं

<HTML>
<BODY>
    <INPUT id=button1 name=button1 type=button value=Button>
    <script LANGUAGE="JScript">
        function button1_onclick() {
            // var app = WScript.CreateObject("Excel.Application");
            var app = new ActiveXObject("Excel.Application");
            app.Visible = true;
            var wb = app.Workbooks.Add();
        }
    </script>
</BODY>
</HTML>

बटन को क्लिक करने पर यह एक्सेल को नहीं खोलता है। मैं इसकी सराहना करूंगा यदि आप मुझे यह जानने में मदद कर सकें कि समस्या क्या है और मैं इसे कैसे हल कर सकता हूं। आपके समर्थन के लिए अग्रिम धन्यवाद।

जवाब

1 user692942 Dec 02 2020 at 16:53

Object_Eventवाक्य रचना काम क्यों नहीं करती है?

यह वास्तव में बहुत सरल Object_Eventवाक्यविन्यास है VBScript, घटनाओं को स्वचालित रूप से JScript में बाँधने की अनुमति देने के लिए आपको बस सही सिंटैक्स का उपयोग करने की आवश्यकता होती है Object::Event, जो कि यहां एक उदाहरण है जो स्वचालित रूप से बाध्य घटनाओं का उपयोग करता है।

<html>
<body>
    <input id="button1" name="button1" type="button" value="Button">
    <script language="JScript">
        function button1::onclick() {
            var app = new ActiveXObject("Excel.Application");
            app.Visible = true;
            var wb = app.Workbooks.Add();
        }
    </script>
</body>
</html>

बस इसका परीक्षण किया गया है और यह काम कर रहा है, इसलिए हो सकता है कि आप onclickइवेंट हैंडलर को याद कर रहे हों क्योंकि @Teemu टिप्पणियों में सुझाव देता है ।

<html>
<body>
    <input id="button1" name="button1" type="button" value="Button" onclick="return button1_onclick();">
    <script language="JScript">
        function button1_onclick() {
            var app = new ActiveXObject("Excel.Application");
            app.Visible = true;
            var wb = app.Workbooks.Add();
        }
    </script>
</body>
</html>

एकमात्र वास्तविक अंतर तत्व onclickपर घटना हैंडलर का समावेश है <input>

onclick="return button1_onclick();"

यह एक बटन प्रदर्शित करता है जिसे क्लिक करने पर Microsoft Excel एक नई कार्यपुस्तिका के साथ खुलता है।


उपयोगी कड़ियाँ

  • HTA फ़ाइल में जावास्क्रिप्ट
  • HTA एप्लिकेशन से प्रोग्राम खोलें
  • जावास्क्रिप्ट का उपयोग करके HTA में ActiveX ईवेंट हैंडलर्स (तथ्य यह है कि इसे जावास्क्रिप्ट कहा जाता है बस JScript के आसपास गलत सूचना दिखाता है)
  • MSDN (स्क्रिप्टिंग क्लिनिक) - स्क्रिप्टिंग इवेंट