有一个网页,他用了 ActiveX控件 设计就是 给ie用的。引用代码是:
<OBJECT classid="clsid:18946843-7507-44FE-ACE8-2B3483D179B7"
id="CVR_IDCard" name="CVR_IDCard" width=0 height=0>
</OBJECT>
网页在js调用的时候 会
var pName=CVR_IDCard.Name;
var pSex=CVR_IDCard.Sex;
var pNation=CVR_IDCard.Nation;
var pBorn=CVR_IDCard.Born;
这样调用。
他的功能是通过读卡器 读一种身份卡的。
现在呢,我们不需要电脑硬件去读身份卡,但是服务器不是我们维护的所以我们不能去改网页源码。
所以我们重新写了一个 ActiveX控件 guid 设置的和 他们提供的 相同。新写的 ActiveX控件 不会去读硬件 而是读我们给他提供的标准的格式化数据。
这样呢 在win pc上 用ie 是没有问题了。
但是老板要 手机可以用,这个真心没有弄过呀,
我的思路是 “ chrome”
手机方面确实没有接触过 甚至不知道 手机上的 chrome 能不能用插件。我想先在 pc测试通过。
用chrome 插件 注入 js 的方式 把 <object> 标签给删掉。然后 再给 CVR_IDCard 对象的各个属性 方法 赋值。
这样网页读的时候 就可以读了。
但是测试过不去呀。
var obj = document.getElementById("CVR_IDCard");
objp = document.getElementsByTagName("p")[1];
objp.removeChild(obj);
var cat = {
Name : "name",
Sex : "0",
Nation : "Nation",
ReadCard: function(){return 2;}
};
CVR_IDCard = Object.create(cat);
alert(CVR_IDCard.ReadCard());
以chrome插件的方式 把这段 js代码贾政进去。 alert 弹出的数值是对的。
但是 网页中 获取不到
CVR_IDCard.Name;
CVR_IDCard.Sex;
CVR_IDCard.Nation;
CVR_IDCard.Born;
……
这样的属性。
是不是我的想法太想当然了。
我应该怎么做呢? 给个思路,或者方向吧。