PB9.0对使用js的encodeuri

项目中遇到问题,公司使用的是pb9.0,需要对url进行编码,并且第三方的文档上边给了js的例子,说是可以使用js的encodeURI对url编码,

于是想到是否可以直接使用js的控件来使用js的函数,百度了一下,发现真有,综合了网友们的办法,写出了以下方法

/*uf_encodeuri
ref string as_url //需要编码的的url
ref string as_error
*/
IF inv_String.of_IsEmpty(as_url) THEN
    as_error = "地址不能为空!"
    RETURN -1
END IF

oleobject lo_jsscript
lo_jsscript = create oleobject 
long ll_ret
ll_ret = lo_jsscript.connecttonewobject("MSScriptControl.ScriptControl")
if ll_ret <> 0 then
    as_error = '创建MSScriptControl.ScriptControl对象出错,请注册msscript.ocx,错误编码:' + String(ll_ret)
   return -1
end if

lo_jsscript.language = "jscript"
String ls_url
ls_url = lo_jsscript.Eval('encodeURI(~'' + as_url + '~')')
as_url = ls_url
destroy lo_jsscript


RETURN 1

注意,在给url编码时,使用了msscript.ocx控件,此控件是系统自带控件,打开浏览器时,如果提示未安装控件,则说明控件被注销或删除了,则按装一个即可。
a) 直接解压msscript.rar包,拷贝msscript.ocx文件到系统目录里:
1、Windows 95/98/Me系统,将msscript.ocx复制到C:\Windows\System目录下。
2、Windows NT/2000系统,将msscript.ocx复制到C:\WINNT\System32目录下。
3、Windows XP/WIN7/Vista系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将msscript.ocx复制到C:\Windows\System32目录下。
4、如果您的系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录具体的方法可以参考这篇文章:win7 64位旗舰版系统运行regsvr32.exe提示版本不兼容
b) 打开"开始-运行-输入regsvr32 msscript.ocx",回车即可解决。希望脚本之家为您提供的msscript.ocx对您有所帮助
如果提示“模块atiacmxx.dll可能与您正在运行的windows版本不兼容,检查该模块是否与regsvr.exe的x86或x64版本兼容” 则打开cmd:
定位到C:\WINDOWS\syswow64目录,输入regsvr32 msscript.ocx,即可。

 

posted @ 2016-06-17 16:25  春夏秋冬春  阅读(1717)  评论(0编辑  收藏  举报