से वीबी पर लिखे गए फ़ंक्शन को कॉल करें वर्तमान में मुझे वीबी में लिखे गए विरासत प्रणाली से निपटना होगा। मैं वीबी और एएसपी के साथ अच्छा नहीं हूं, इसलिए मैंने फैसला किया कि इस प्रणाली के लिए नया कोड जेस्क्रिप्ट में लिखा जाएगा। "उम्मीद वस्तु" अर्थात्, जब मैं कुछ समारोह <script language="vbscript">
टैग में घोषित कॉल करने के लिए कोशिश कर रहा हूँ, यह एक के साथ विफल त्रुटि (अगर पृष्ठ भाषा है:एक जेस्क्रिप्ट कोड (क्लासिक एएसपी)
हालांकि, वहाँ दो भाषाओं के बीच अंतर के साथ कुछ समस्या है वीबीस्क्रिप्ट), और इसके विपरीत।
अर्थात्, निम्नलिखित कोड:
VBTestFunction: from vbscript
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'JSTestFunction'
/test.asp, line 9
:
inc.asp
<script language="vbscript" runat="server">
Sub VBTestFunction(Message)
Response.Write "VBTestFunction: " & Message
End Sub
</script>
<script language="javascript" runat="server">
function JSTestFunction(Message) {
Response.Write("JSTestFunction: " + Message);
}
</script>
testjs.asp
<%@ Language="JavaScript" %>
<!-- #include file="inc.asp"-->
<script language="javascript" runat="server">
VBTestFunction("from javascript");
JSTestFunction("from javascript");
</script>
<script language="vbscript" runat="server">
Call VBTestFunction("from vbscript")
Call JSTestFunction("from vbscript")
</script>
निम्नलिखित त्रुटि के साथ विफल
(यदि मैं विशिष्ट रेखा पर टिप्पणी करूंगा, तो अन्य तीन कथन ठीक काम करेंगे); VBScript
<%@ Language="VBScript" %>
<!-- #include file="inc.asp"-->
<script language="javascript" runat="server">
VBTestFunction("from javascript");
JSTestFunction("from javascript");
</script>
<script language="vbscript" runat="server">
Call VBTestFunction("from vbscript")
Call JSTestFunction("from vbscript")
</script>
करने के लिए पृष्ठ भाषा सेट निम्नलिखित त्रुटि के साथ विफल:
Microsoft JScript runtime error '800a138f'
Object expected
/test.asp, line 4
(फिर से, अगर मैं विशिष्ट लाइन बाहर टिप्पणी करेंगे, अन्य तीन बयानों से कार्य करेंगे)।
एक ही अनुप्रयोग में वीबी और जेएस मिश्रण पर MSDN article है, लेकिन लेख से ऐसा लगता है कि उदाहरण कोड को काम करना चाहिए, क्योंकि TestFunction
किसी अन्य फ़ाइल में घोषित किया गया है और यह सब कुछ है।
क्या यह सब कुछ काम करने के लिए कुछ तरीका है, और वीबी और जेएस कोड दोनों से VBTestFunction
और JSTestFunction
दोनों को कॉल करने के लिए? मुझे लगता है कि एक होना चाहिए, अन्यथा जेएस और वीबी मिश्रण करने में कोई बात नहीं होगी।
आपके द्वारा उल्लिखित आलेख पर बारीकी से देखो, विशेष रूप से वह हिस्सा जहां "सर्वर स्क्रिप्ट ऑर्डर ऑफ एक्जिक्यूशन" कहता है। आपकी समस्या वहां है। –
आलेख विशेष रूप से मुख्य कोड प्रवाह ("इनलाइन सर्वर स्क्रिप्ट") और सबराउटिन घोषणा के बीच की रेखा खींचता है। लेख से ऐसा लगता है कि किसी भी भाषा में एक सबराउटिन घोषित किया जा सकता है और मैं इसे किसी भी भाषा से कॉल करने में सक्षम हूं। – penartur