我想通过浏览器的方式使用本地读卡器读卡,使用active控件,在本地测试是能通过的,挂到服务器使用浏览器访问就不能通过,好像是读的服务器的设备,请问大神们怎么实现读本地的卡。
------解决方案--------------------
这要看你的代码是怎么写的。http://www.cnblogs.com/cclx/archive/2009/07/08/1519361.html
------解决方案--------------------
你这肯定是读服务器的吗?
本地要用js来操作active
------解决方案--------------------
???????
用错方式了,应该在js里调用
var activex=new new ActiveXObject("ACTIVEXJNICCARDLib.ICCardXClass")
当然前提是你做滴真滴是activex控件,而且已经在客户端注册安装,并且ie有足够的权限运行他
------解决方案--------------------
<div style="display:none">
<OBJECT ID="ICCardXCtl" CLASSID="CLSID:active序列号"width="0" height="0" border=0 codebase="版本控制" ></OBJECT>
</div>
var aa="";
var bb="";
document.ICCardXCtl.combaud = 9600
document.ICCardXCtl.comport =1
document.ICCardXCtl.JNIC("68010101020200", aa, bb);
------解决方案--------------------
还有就是要将站点添加到"可信任站点"
------解决方案--------------------
你要有接口开发说明,才能够知道他是怎么调用的啊
------解决方案--------------------
ocx本地regser32
然后直接JavaScript调用就行了 这才是正常的activx
你说的东西 都写到后台了 我完全不知道干啥的.
------解决方案--------------------
0.安装读卡驱动,阅读驱动文档,添加可信任站点,允许运行ActiveX
1.HTML引入ActiveX
2.JS调用ActiveX中的方法
3.客户端安装ActiveX
调用方法再没别的了。
至于你说的这种情况,建议你阅读下文档,看看读卡驱动是怎么玩的,可能他就是读当前主机的设备。
------解决方案--------------------
假设SDK中定义方法a(int a, sting b)返回string
js中调用var str = activeName.a(0, "他要的东西");
你确定你文档读懂了?
------解决方案--------------------
前台JavaScript 就document.GetXXXXByID("xxxx").方法名就行啊...
楼上说的没错 假设你ocx里有一个方法 叫GetHardInfo 没有参数 返回硬盘序列号..
你就可以
var xxx=document.GetXXXXByID("xxxx").GetHardInfo();就行了..
------解决方案--------------------
你要有接口开发说明,才能够知道他是怎么调用的啊
里面的方法和属性都是我自己写的封装的,所以我很清楚有些什么,就是前台js如何调用不知道?
假设SDK中定义方法a(int a, sting b)返回string
js中调用var str = activeName.a(0, "他要的东西");
你确定你文档读懂了?
哥们:你那个不用new那个active吗?那样能直接得到方法吗?
你还真不会。。。
html:
<object id="oframe" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404">
js:
oframe.Open(url,params);
------解决方案--------------------
我后台代码using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ACTIVEXJNICCARDLib;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
string aa = "";
string bb = "";
ACTIVEXJNICCARDLib.ICCardXClass IC = new ICCardXClass();
IC.combaud = 9600;
IC.comport = 1;
IC.JNIC("68010101020200", out aa, out bb);
Response.Write(aa + "\n" + bb);
}
catch(Exception ex)
{ Response.Write(ex.Message); }
}
}
这样我用IE访问的时候应该是调用服务器的设备,要调用客户端的设备怎么做?
老兄,你这是服务端代码,在服务端执行的
楼主应该先了解一下BS架构软件中一个请求的生命周期
------解决方案--------------------
额,基本没啥办法,你始终就一句话运行不出来
这样吧,请你先使用ole viewer或者dll vierwer查找出客户端滴com,然后把com接口方法贴出来看看,然后我们再看怎么搞
------解决方案--------------------