调用SC的特殊性
(创建时间:2010年05月31日 23:39:00)
Jangogo : 
假设有一个SC的function:
 
  1. function test(s)   
  2.     msgbox s   
  3.     'do somthing...   
  4. end function  

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