Jangogo :
假设有一个SC的function:
如果我们在页面的JS调用的时候必须注意:
- function test(s)
- msgbox s
- 'do somthing...
- end function
如果我们在页面的JS调用的时候必须注意:
- //试试以下情况下的结果
- //1. 传入test的参数为字符串OK
- Pazu.fly('test("OK")');
- //2.传入test的参数将为空字符串, 因为OK在SC里面已经被看作没有定义的变量,默认为Empty, 如果作为字符串用就是空字符串
- Pazu.fly('test(OK)');
- //3.和情况1是一样的
- var s='OK';
- Pazu.fly('test("' + s + '")');
- //4.注意了,这样传不到test这个SC函数的,因为参数里面本身有双引号
- var s='"OK"';
- Pazu.fly('test("' + s + '")');
- //最终的SC代码会是: test(""OK"") ,很明显,这样的VBS语法是错误的
- //正确的处理方法是
- var s='"OK"';
- Pazu.fly('test("' + s.replaceAll('"','""') + '")'); //把双引号替换为两个双引号,这样就符合VBS语法了,得到的SC代码最终是 test("""OK""")
- //5.和4类似,当SC函数里面的参数值有回车或者换行符时,SC函数也不会正常调用
- var s='"\n"';
- Pazu.fly('test("' + s + '")');
- /*很显然最后的SC代码结果为:
- test(
- )
- 一行代码分成两行了,VBS是不允许这样写的
- */
文档中心