求助IScriptControlPtr下js使用activex组件问题

时间:2021-08-16 05:03:43
    if(window.ActiveXObject)
    {
        ExcelHttp = new ActiveXObject("Excel.Application");
    }

这种就会报错,好像是对象找不到
但是同样的代码用htmlview或者ie浏览器打开就能找到对象
是否还需要有其他操作?谢谢

7 个解决方案

#1


因为你的脚本宿主是你自己的应用,不是浏览器,所以没有 window 对象,当然会出现对象找不到的问题。
正确的用法是,只需要保留 if 里面的代码:
ExcelHttp = new ActiveXObject("Excel.Application");

#2


谢谢老大了
另外去掉这个检测,那怎么判断是否支持activex呢?
都加上try?
然后没有window对象,后面的new activex都不会受到影响吧?

#3


if(ExcelHttp)

#4


ActiveXObject 是脚本引擎提供的,跟浏览器无关,肯定可用,无需判断,也无需使用 try,如果出错,返回的对象会是null

#5


还有看到js里面使用了parent.bLogin,找了所有的js,也没看到这个bLogin在哪里定义的
希望老大指教

#6


要看JS源码才能确定,parent都不知道是哪定义的

#7


ie浏览器执行的时候parent的这个属性是存在的,
可是这个blogin是从哪来的呢?cookie?还是其他地方?

#1


因为你的脚本宿主是你自己的应用,不是浏览器,所以没有 window 对象,当然会出现对象找不到的问题。
正确的用法是,只需要保留 if 里面的代码:
ExcelHttp = new ActiveXObject("Excel.Application");

#2


谢谢老大了
另外去掉这个检测,那怎么判断是否支持activex呢?
都加上try?
然后没有window对象,后面的new activex都不会受到影响吧?

#3


if(ExcelHttp)

#4


ActiveXObject 是脚本引擎提供的,跟浏览器无关,肯定可用,无需判断,也无需使用 try,如果出错,返回的对象会是null

#5


还有看到js里面使用了parent.bLogin,找了所有的js,也没看到这个bLogin在哪里定义的
希望老大指教

#6


要看JS源码才能确定,parent都不知道是哪定义的

#7


ie浏览器执行的时候parent的这个属性是存在的,
可是这个blogin是从哪来的呢?cookie?还是其他地方?