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,即可。

时间: 2024-08-28 01:35:36

PB9.0对使用js的encodeuri的相关文章

PB9.0实现下拉数据列表的实现

首先说明下,我用的开发环境是PB9.0,oracle10G 数据库. 在平常的开发中,经常用到下拉选择框的录入形式,这样录入即简便快捷,有能保证不出错,而且可以将复杂的输入内容用较直观的方式代替,比如要输入某地的区号,很多人往往不知道,而我们在数据库里有地区和区号的字典表,这样,我们可以通过数据地区名称来代替输入,真正传参时传递区号.PB9.0也提供了这样的功能下拉列表,实现起来比较简单,但是不掌握基本做法,还是状况百出.这篇文章详细介绍下来列表的实现方法. 首先新建一个数据窗口,我们命名为d_

PB9.0 窗体复制

自学考试毕业设计,使用PB9.0做一个管理信息系统. 在做毕业设计之前,需要去实现书上的一个简单的学生管理系统. 之前从没有接触过PB,使用的一段时间. 除了感觉语法类似外,就是开发环境的问题了.用惯了VS之后,感觉非常不智能. 现在说一下,pb程序的构成, *.pbw是pb的可执行文件. *.pbl是pb文件内结构文件的库. 窗体复制,窗体内的控件复制等.完全是在敲菜单栏的时候,感觉非常无脑,繁琐的事情.而且IDE里面也没有设置快捷键.频繁的使用鼠标点击---- 窗体的复制,就是从另一个解决方

MSCRM4.0如何使js事件在批量编辑表单中触发

MSCRM4.0如何使js事件在批量编辑表单中触发 MSCRM4.0如何使js事件在批量编辑表单中触发 MSCRM3.0我们可以通过在onload事件加入以下代码来控制某个属性为只读.crmForm.all.filed.Disabled = true;Update到4.0后我们会发现批量编辑表单的相应属性并没有Disabled,查了4.0的sdk,里面讲由于安全的原因ms取消了bulk edit form事件功能.默认bulk edit form事件功能并没有开启,但是我们可以通过修改实体xml

vue2.0项目 calendar.js(日历组件封装)

最近一直闲来无事,便寻思着做一下自己的个人项目,也想说能使用现在比较流行的一些mvvm框架来做,于是就选用了这样的一个技术栈vue2.0+vue-router+vuex+webpack来做,做得也是多页面应用,使用vue-router,也是想说把多个功能模块化,单个模块spa,实现更高的效果.当然现在还在做的过程中,如果感兴趣可以过来star一下,哈哈,https://github.com/xiaobinwu/Wuji,git clone下来看看. 今天要说的是在做这个项目的过程中,自己想加一个

[AS3.0] HTMLLoader与js交互

HtmlLoader 的属性window是加载到 HTML 控件中的内容的全局 JavaScript 对象,通过这个对象能够方便的和页面js通讯. AS代码: import flash.html.HTMLLoader; import flash.net.URLRequest; import flash.events.MouseEvent; var html:HTMLLoader = new HTMLLoader(); html.width = 960; html.height = 540; ht

在MS CRM 4.0中引用JS文件

引用: http://blog.csdn.net/qzw4549689/article/details/6027987 1.编写好JS代码,在ISV目录下新建一个目录javascripts,将JS文件放到该目录中 2.在需要调用该JS的页面的onload事件里添加如下代码: var script = document.createElement('script'); script.language = 'JavaScript'; script.src = '/ISV/javascripts/XX

JS中encodeURI,escape,encodeURIComponent区别

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断. 例如: <script language="javascript">document.write('<a href="http://passport.baidu

js escape, encodeURI, encodeURIComponent

escape,   encodeURI,   encodeURIComponent 1)基本介绍 js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数:decodeURI,decodeURIComponent 2)用途 1.   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断. 例如:"http://www.baidu.com?name="+encodeURICom

Notadd 2.0 全新 Node.js 版本~ (开发中) [从 PHP 到 node 的踩坑记]

对于 Notadd 我们本来期望它实现更多... 尽管我们也尝试做了很多努力,但是由于 PHP 本身的局限,以及考虑到开发环境配置的复杂程度,最终使用了折中方案.接下来,我们谈谈整个技术选型历程,也供今后相关开发者做借鉴和参考: 起因 我们期望 Notadd 不仅能应用到 web 领域,在嵌入式开发领域也能有所应用,同时能够使用常用的 websocket 协议. Swoole swoole 是我们考虑的首选方案,但从扩展性来说,难以符合我们模块化的要求,对 HTTPS 和 HTTP2 支持不够完