描述:
我在ActiveX中创建了一个CHtmlView来显示网页内容 在View中的网页有添加收藏夹的功能 即window.external.addFavorite(...),但控件放到网页上,触发控件中的添加收藏夹按钮时提示"window.external为空或不是对象"
请高手指教!
解决方案1:
如果你的activex 已经测试没有问题的话,同时又没有数字签名的话,请将ie的安全级别设为最低
解决方案2: 1 你可能使用了windows xp sp2.SP2修改的设置不允许自动或者用户操作间接产生的浏览器窗口,包括ShellUIHelper和WebBrowser产生的各种窗口。如果自己不实现external的话,IE默认的是ShellUIHelper对象
2 你用IDocHostUIHandler::GetExternal或者MFC/ATL的CHTMLView/CDHTMLDialog/CAxWindow自行设置的external对象不支持以上方法(MFC7.0以上版本支持这个接口)。很多网站假定客户端是IE的时候没有考虑应用程序使用浏览器控件浏览网站的情况。
3 可能是网页的安全性问题。你可以尝试自行创建一个ShellUIHelper对象来完成需要的操作。
参考资料
http://dev.csdn.net/article/21/21702.shtm
http://blog.csdn.net/newkey007/
window.external
你设置了 external 吗?
SetExternalDispatch(this)