HELP: ASP JScript & VBScript interoperability
How can VBScript code access JScript code variables in the same ASP page?
<SCRIPT LANGAUGE="VBScript">
Dim a
a = 10
</SCRIPT>
<SCRIPT LANGUAGE="JScript">
Response.Write(a);
</SCRIPT>
Also, is this valid JScript code because ASP hasn't complained.
<SCRIPT LANGUAGE="JScript">
function Section(a, b, c, d) {
this.a = a;
this.memFunction = function() {
this.a = this.a + 1;
}
}
</SCRIPT>
Basically it's like JScript's way of declaring classes.
How can VBScript code create a Section object?
<SCRIPT LANGUAGE="VBScript">
Dim obj
obj = new Section 'Error, says cannot find Section
obj = new Section() 'Error again
obj = new Section(1, 2, 3, 4) 'Error again
</SCRIPT>
Also, is it possible to nest <SCRIPT> tag inside <% %>? Like:
<%
'Some VBScript code
Class AClass
Private a
Function b()
End Function
%>
<!-- #INCLUDE VIRTUAL="JScript.asp" -->
<%
End Class
%>
where JScript.asp has:
<SCRIPT LANGUAGE="JScript">
function Section() {
function Section2() {
}
}
</SCRIPT>
ASP didn't complain. But couldn't test whether the JScript functions Section
were member functions of the VBScript AClass.
Date:Fri, 15 Jun 2007 17:42:32 +0100
Author:
|
Re: ASP JScript & VBScript interoperability
"Andrew Wan" wrote in message
news:OrvCZw2rHHA.3884@TK2MSFTNGP04.phx.gbl...
> How can VBScript code access JScript code variables in the same ASP page?
>
> <SCRIPT LANGAUGE="VBScript">
> Dim a
> a = 10
> </SCRIPT>
> <SCRIPT LANGUAGE="JScript">
> Response.Write(a);
> </SCRIPT>
>
> Also, is this valid JScript code because ASP hasn't complained.
It won't because without a runat="server" attribute on the script element
the above is simply treated as content and sent to the client. The client
should've complained that Response is undefined.
To answer your question variables and functions declared at global scope are
accessible across the script boundaries.
>
> <SCRIPT LANGUAGE="JScript">
> function Section(a, b, c, d) {
> this.a = a;
> this.memFunction = function() {
> this.a = this.a + 1;
> }
> }
> </SCRIPT>
>
> Basically it's like JScript's way of declaring classes.
Yeah but it's very JScript and is completely alien to VBScript.
>
> How can VBScript code create a Section object?
>
> <SCRIPT LANGUAGE="VBScript">
> Dim obj
> obj = new Section 'Error, says cannot find Section
> obj = new Section() 'Error again
> obj = new Section(1, 2, 3, 4) 'Error again
> </SCRIPT>
You need to create a factory function in the JScript:-
function newSection(a, b, c, d)
{
return new Section(a, b, c, d)
}
Now VBScript can use:-
Set obj = newSection(1,2,3,4)
>
>
> Also, is it possible to nest <SCRIPT> tag inside <% %>? Like:
>
> <%
> 'Some VBScript code
> Class AClass
> Private a
> Function b()
> End Function
> %>
> <!-- #INCLUDE VIRTUAL="JScript.asp" -->
> <%
> End Class
> %>
>
> where JScript.asp has:
>
> <SCRIPT LANGUAGE="JScript">
> function Section() {
> function Section2() {
> }
> }
> </SCRIPT>
No do it the other way around:-
Have a JScript.js file
then add this outside <% %> :-
<script src="test.js" runat="server" language="JScript" ></script>
Note it only makes sense to use this a function library, in-line code isn't
much use apart from code that may help create objects.
>
> ASP didn't complain. But couldn't test whether the JScript functions
Section
> were member functions of the VBScript AClass.
>
>
Again the runat attribute was missing.
Date:Fri, 15 Jun 2007 18:22:42 +0100
Author:
|