2009-09-22 13 views
5

मैं एक ActiveX वस्तु के साथ Login.aspx पर साधारण एचटीएमएल मिल गया है:जावास्क्रिप्ट: जब ActiveX वस्तु बुलाया "वस्तु इस संपत्ति या विधि का समर्थन नहीं करता"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head><title></title> 
<script language="javaScript" type="text/javascript"> 

    function getUserInfo() 
    { 
     var userInfo = MyActiveX.GetInfo(); 
     form1.info.value = userInfo; 
     form1.submit(); 
    } 

</script> 
</head> 

<body onload="javascript:getUserInfo()"> 
<object id="MyActiveX" name="MyActiveX" codebase="MyActiveX.cab" classid="CLSID:C63E6630-047E-4C31-H457-425C8412JAI25"></object> 
    <form name="form1" method="post" action="Login.aspx"> 
     <input type="hidden" id="info" name="info" value="" /> 
    </form> 
</body> 
</html> 

कोड मेरी मशीन पर पूरी तरह से ठीक काम करता है (संपादित करें: होस्ट किया गया और चलाएं), यह दूसरे पर काम नहीं करता है: जावास्क्रिप्ट फ़ंक्शन की पहली पंक्ति में "ऑब्जेक्ट इस प्रॉपर्टी या विधि का समर्थन नहीं करता है" त्रुटि है। कैब फ़ाइल पृष्ठ फ़ाइल के समान फ़ोल्डर में है। मुझे जावास्क्रिप्ट बिल्कुल नहीं पता है और मुझे पता नहीं है कि समस्या क्यों हो रही है। गुगलिंग मदद नहीं की। क्या आपको कोई विचार है?

संपादित करें: दोनों मशीनों पर IE का उपयोग किया गया था और Activex सक्षम था।

संपादित 2: मैंने फ़ंक्शन की भिखारी पर भी (document.MyActiveX) जोड़ा है और मुझे अभी भी कोड की एक ही पंक्ति में त्रुटि मिलती है - मेरा मतलब है कि यह दस्तावेज़ की तरह दिखता है। मेरा एक्टिवएक्स सच है लेकिन विधि को कॉल करना अभी भी

विफल रहता है
+0

क्या आप वाकई उस मशीन पर ActiveX सक्षम है जिस पर आप असफल हो रहे हैं? ध्यान दें कि जोन मायने रखता है (स्थानीय, इंट्रानेट, इंटरनेट) और इसमें विभिन्न सुरक्षा विशेषताएं हैं। स्थानीय, इंट्रानेट जोनों में आमतौर पर डिफ़ॉल्ट रूप से ActiveX बंद होता है। –

+0

ने यह सब जांच लिया - सभी जोनों में सक्रिय x सक्षम – agnieszka

+0

समान समस्या है। एक ही पृष्ठ आईई 7 में काम करता है लेकिन आईई 8 में नहीं। –

उत्तर

0

शायद अन्य मशीन पर ब्राउज़र ActiveX का समर्थन नहीं करता है? बस एक जंगली अनुमान

+0

नहीं। यानी सक्रिय x सक्षम – agnieszka

2

मुझे लगता है कि ऑनलोड ईवेंट ActiveX ऑब्जेक्ट लोड होने से पहले भी कार्य को चलाने के लिए कर रहा है। इसके बजाय आप निम्नलिखित कोशिश कर सकते हैं:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
     <title></title> 
     <script language="javaScript" type="text/javascript"> 
      function getUserInfo(){ 
       if(document.MyActiveX){ 
        var userInfo = MyActiveX.GetInfo(); 
        form1.info.value = userInfo; 
        form1.submit(); 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <object id="MyActiveX" name="MyActiveX" codebase="MyActiveX.cab" classid="CLSID:C63E6630-047E-4C31-H457-425C8412JAI25"></object> 
     <script for="window" event="onload" language="JavaScript"> 
      window.setTimeout("getUserInfo()", 500); 
     </script> 

     <form name="form1" method="post" action="Login.aspx"> 
      <input type="hidden" id="info" name="info" value="" /> 
     </form> 
    </body> 
</html> 

अब getUserInfo() फ़ंक्शन 500 मिलीसेकेंड चलना शुरू हो जाएगा के बाद पृष्ठ भरी हुई है। इसे ActiveX ऑब्जेक्ट को लोड करने के लिए कुछ समय देना चाहिए।

+0

अधिकांश बार, ActiveX स्थापना ब्राउज़र द्वारा अवरुद्ध है। यदि आईई का उपयोग करते हैं, तो पीले अलर्ट बार पूछता है कि क्या आप ऑब्जेक्ट इंस्टॉल करना चाहते हैं। उपयोगकर्ता की सहमति के बाद, ऑब्जेक्ट इंस्टॉल हो जाएगा। यदि ऑब्जेक्ट लोड नहीं होता है, तो ऑब्जेक्ट से निपटने वाले फ़ंक्शन को यह जांचना होगा कि आवश्यक ऑब्जेक्ट लोड है या नहीं। और हे, सभी ActiveX ऑब्जेक्ट्स हर किसी की मशीन में प्री-लोड नहीं हैं। – Nirmal

+0

लेकिन कोई अलर्ट बार नहीं है ..बस एक त्रुटि – agnieszka

+0

चूंकि आप दस्तावेज़ लोड होने के तुरंत बाद फ़ंक्शन को कॉल कर रहे हैं, इसलिए यह संभावना है कि फ़ंक्शन ActiveX ऑब्जेक्ट लोड होने से पहले भी चलता है। मेरे संपादित उत्तर का संदर्भ लें। – Nirmal

0

शायद ActiveX को कुछ पूर्व शर्त (उदाहरण के लिए क्रंटटाइम) की आवश्यकता है जो अन्य मशीनों पर मौजूद नहीं है? क्या आपने होस्टिंग मशीन पर Activex के लिए depends चलाने का प्रयास किया है?

0

शायद अन्य मशीन में वायरस स्कैनर या ऐसा ही है जो चुपचाप ActiveX उपयोग को रोकता है?

2

IE8 डोमेन स्तर पर ActiveX तक पहुंच प्रबंधित करता है।

इसे ठीक करने के लिए:

  1. IE8, उपकरण -> ऐड-ऑन प्रबंधित
  2. "उपकरण पट्टियाँ और एक्सटेंशन" अपने ActiveX
  3. राइट क्लिक करें खोजने के में - अधिक जानकारी
  4. क्लिक करें - पर अनुमति दें सभी साइट्स
  5. आनंद लें
संबंधित मुद्दे