Javascript与vbscript数据共享

2019-11-16 16:00:46来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

Javascript与vbscript数据共享的内容,大家清楚吗?其实ASP这个功能可以管理不同的语言,而且能自动调用相应脚本代码和执行函数,如果你觉得爱站技术频道的知识有用,就不要错过下面的精彩内容哦。
1、普通全局变量
在browser里,引用一个全局变量,可以有很多方法,你可以直接引用该变量,也可以用window.variable来引用全局变量,原因是因为全局变量属于window的窗体,但是当每新开一个窗口,浏览器会自动清空先前已有变量(也就是说,每个新开页面都是一个“有清白之身的web页”,因此在新开的窗口里是不可以引用之前定义的变量,如果要引用,可以变向获取,如通过URL的参数传递等方法来获取,但这是后话了)如:
<script>
var?global?=?"this?is?a?global?var."
</script>
<SCRIPT?LANGUAGE="vbScript">
<!--
alert(window.global)
alert(global)
//-->
</SCRIPT>

输出结果:
this?is?a?global?var.
this?is?a?global?var.

2、vbs引用js的对象(非原型prototype对象)、函数
可直接引用:即对象名.属性名

<SCRIPT?LANGUAGE="JavaScript">
<!--
function?obj(){};
obj.string="test";
obj.replacec=function(s){return?s.replace(/c/,"")};
//-->
</SCRIPT>
<SCRIPT?LANGUAGE="vbScript">
<!--
alert(obj.string)
obj.string="change"
alert(obj.string)
alert(obj.replacec(obj.string))
//-->
</SCRIPT>

输出结果:
change
hange

当js是prototype型时,vbs可以用以下方法来访问js的成员

<SCRIPT?LANGUAGE="JavaScript">
<!--
function?myClass(s)
{
?this.s=s
?return?this;
};
myClass.prototype.output=function()
{
?alert(this.s);
}
var?obj=new?myClass("blueDestiny");
//-->
</SCRIPT>
<SCRIPT?LANGUAGE="vbScript">
<!--
obj.output()
//-->
</SCRIPT>

3、js里调用vbs里的class,可先在vbs里先生成一个实例,js可以通过这个实例来访问vbs的成员。

<SCRIPT?LANGUAGE="vbScript">
<!--
class?myClass
?public?s
?public?sub?alertstring()
?alert(s)
?end?sub
end?class
set?obj=new?myClass
//-->
</SCRIPT>
<SCRIPT?LANGUAGE="JavaScript">
<!--
obj.s="blueDestiny"
obj.alertstring()
//-->
</SCRIPT>
输出结果:
blueDestiny

4、js调用vbs定义的数组问题,可直接得用下标来获得第几个元素的值。

<SCRIPT?LANGUAGE="vbScript">
dim?a(2)
a(0)="blue"
a(1)="destiny"
</script>

<script>
<!--
alert(a(0))
alert(a(1))
//-->
</SCRIPT>
输出结果:
blue
destiny

但是,如何将vbs的数组转换成js的数组呢?可以利用js的VBArray()对象,以及toArray()方法,值得注意的是,toArray()方法得出的是一个一维数组:

<SCRIPT?LANGUAGE="VBScript">
<!--
Function?CreateVBArray()
?Dim?i,?j,?k
?Dim?a(2,?2)
?'初始化二维数组
?k?=?1
?For?i?=?0?To?2
?For?j?=?0?To?2
?a(j,?i)?=?k
?document.writeln(k)
?k?=?k?+?1
?Next
?document.writeln("<BR>")
?Next
?CreateVBArray?=?a
End?Function
-->
</SCRIPT>

<SCRIPT?LANGUAGE="JScript">
<!--
function?VBArrayTest(vbarray)
{
?//调用VBArray()对象,将vbs数组转化为js的数组并调用toArray()方法得到一维数组。
?var?a?=?new?VBArray(vbarray);
?var?b?=?a.toArray();
?var?i;
?for?(i?=?0;?i?<?9;?i++)?
?{
?document.writeln(b[i]);
?}

}
VBArrayTest(CreateVBArray());
-->
</SCRIPT>
输出结果:
1?2?3?
4?5?6?
7?8?9?
1?2?3?4?5?6?7?8?9?

5、js数组转化为vbs数组:
得到js的数组长度,可直接用length属性获得

<SCRIPT?LANGUAGE="JavaScript">
<!--
var?arr=["blue","Destiny"];
//-->
</SCRIPT>
<SCRIPT?LANGUAGE="vbScript">
<!--
alert(arr.length)
//-->
</SCRIPT>

输出结果:
2

如果要通过下标访问js的数组元素,将无法获取,但可通过现有的方法:join()(js里的方法)以及Split()

<SCRIPT?LANGUAGE="vbScript">
<!--
'注:这里不可用vbs的join(arr,",")方法,实际上这里所用到的是js里的join方法,并且为vbs的
vbarr=arr.join(",")
vbarr=split(vbarr,",")
alert(vbarr(0))
alert(vbarr(1))
//-->
</SCRIPT>

输出结果
blue
Destiny

相信各位朋友们对于Javascript与vbscript数据共享已经了解了,也获得了很多这方面的专业知识,大家可以选择上面的知识进行学习。


原文链接:https://js.aizhan.com/develop/JavaScript/10156.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:jQuery查找节点并获取节点属性的方法

下一篇:html页面包含共享页面的方法