如何在MS-Edge IE-Mode下运行Bookmarklet并解决0x80070005报错?
Edge IE模式运行ActiveX类Bookmarklet的解决方法
报错根因
你遇到的//ieframe.dll/dnserror.htm?ErrorStatus=0x80070005报错由两个核心问题导致:
- 存放在Edge原生收藏夹栏的Bookmarklet默认运行在Chromium内核上下文,该环境完全不支持
ActiveXObject对象,无法运行你写的本地文件/文件夹调用逻辑 - Chromium内核默认拦截非同源上下文的
javascript:协议导航,点击书签后直接触发导航失败,脚本根本没有进入IE模式进程执行
可落地操作步骤
- 第一步先配置IE模式站点列表:把你需要搭配Bookmarklet使用的所有业务站点加入IE模式清单,打开对应站点时确认地址栏右侧显示IE模式蓝色标识,确保页面确实由IE内核渲染
- 不要使用Edge原生收藏夹存放Bookmarklet:在IE模式打开的目标页面空白处右键,选择「收藏夹栏」-「添加到收藏夹栏」,这个操作创建的是IE内核侧的收藏项,而非Chromium侧的收藏条目。创建时将地址栏内容替换为你的Bookmarklet完整代码(带
javascript:前缀)后保存 - 调整IE区域安全权限:打开「Internet选项」-「安全」选项卡,选中你存放业务站点的对应区域(通常为本地Intranet/受信任站点),点击「自定义级别」,找到「对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本」项设置为启用,同时将你要访问的本地文件夹、文件所在路径加入该区域的站点列表,避免权限拦截
- 临时测试可直接用IE调试控制台:在IE模式页面按F12唤起IE内核调试工具,切换到控制台标签,粘贴Bookmarklet中
javascript:后的代码回车即可直接执行,不需要存为书签就能验证逻辑
避坑说明
- 不要直接在Edge地址栏粘贴Bookmarklet代码执行,Edge会自动剥离
javascript:协议前缀,无法触发脚本运行 - 不要将IE模式站点配置为“在Edge中打开”,必须确保页面全程运行在IE内核渲染上下文,否则ActiveX无运行环境
内容的提问来源于stack exchange,提问作者TAKU
相关产品推荐
相关产品推荐

