首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js调用ie11的打印预览

在JavaScript中调用IE11的打印预览功能,可以使用ActiveXObject,这是一个仅在Internet Explorer中可用的接口,用于创建和实例化COM对象。以下是一个示例代码,展示如何使用JavaScript打开IE11的打印预览窗口:

代码语言:txt
复制
function openPrintPreview() {
    try {
        // 创建一个ActiveXObject实例,用于调用IE的打印预览功能
        var WebBrowser = new ActiveXObject("InternetExplorer.Application");
        
        // 设置WebBrowser对象的属性,使其在后台运行,不显示界面
        WebBrowser.Visible = false;
        
        // 导航到当前页面
        WebBrowser.Navigate(window.location.href);
        
        // 等待页面加载完成
        while (WebBrowser.Busy) {
            // 短暂等待,避免CPU占用过高
            WScript.Sleep(100);
        }
        
        // 调用打印预览方法
        WebBrowser.ExecWB(6, 2); // 参数6代表打印预览,参数2代表不显示打印对话框
        
        // 可选:释放ActiveXObject对象
        WebBrowser.Quit();
        WebBrowser = null;
    } catch (e) {
        // 如果ActiveXObject创建失败,可能是因为浏览器安全设置不允许
        alert("无法打开打印预览。请确保浏览器允许ActiveX控件运行。");
    }
}

注意:ActiveXObject的使用受到严格的安全限制,只有在用户信任的环境下才能运行。此外,由于ActiveXObject是IE特有的技术,现代浏览器如Chrome、Firefox、Edge等都不支持此功能。

应用场景:此功能通常用于企业内部应用或需要与旧版IE浏览器兼容的Web应用程序中,以便用户可以直接从网页调用打印预览功能。

问题解决:如果在尝试调用打印预览时遇到问题,可能的原因包括:

  1. 浏览器安全设置:IE的安全设置可能阻止了ActiveXObject的运行。需要在IE的“Internet选项”中调整安全设置,允许ActiveX控件运行。
  2. 浏览器版本:确保使用的是IE11版本,因为ActiveXObject在其他版本的IE或现代浏览器中不可用。
  3. 权限问题:在某些情况下,操作系统或网络策略可能限制了ActiveXObject的使用。
  4. 代码错误:确保JavaScript代码没有语法错误,并且正确地实例化了ActiveXObject。

如果遇到问题,可以尝试调整IE的安全设置,或者在代码中添加更多的错误处理逻辑,以便更好地诊断问题所在。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • (在线预览CAD图纸)在线CAD调用内部弹框的方法

    前言在 MxCAD APP 二次开发的过程中,为了沿用项目内部的样式保持项目的统一性,我们提供了调用项目内部弹框的接口。用户可根据自己的具体需求按照下面文档介绍的步骤来操作调用项目内部的弹框。...基础调用1.首先创建一个test_dialog文件夹用于存储弹框相关的文件,如下图:2.在文件夹下创建 dialog.ts 文件用于注册弹框,代码如下:// dialog.isShow.value 默认是.../test_dialog/index'如下图:6.启动MxCAD项目,执行上面注册的 'Mx_test_dialog' 命令就能显示弹框了,运行效果如下:高级调用按照上述步骤操作,用户可直接通过命令行调用来控制项目弹框的显隐...操作步骤如下:1.在dialog.ts文件下调用 useDialogIsShow 钩子函数通过类型参数化的方式定义对话框显示、确认和取消时需要处理的数据类型,代码如下:   // 弹框要显示的数据   ...5.最后在自己的方法中调用dialog就可以直接控制弹框了,代码如下:   function test() {       /**        * 这里是弹出弹框前需要执行的代码        */

    5810

    JS & JAVA(Android) 的互相调用(简介)

    (自己的理解) mWebView.addJavascriptInterface(MainActivity.this,"javaInterface"); 说到调用方法, 那么我们首先得有一个方法可以让我们去调用..., 在Js中 function 是声明方法的关键字, 这个如果你懂js的话我就不再多话, 如果,你不懂,那么打开网页戴上耳机关掉王者荣耀,沉浸在学习的海洋中。...---- 其次,就是Js调用Java代码: 首先要调用java代码,那么我们肯定要有一个方法,如下定义: @JavascriptInterface public String onSumResult...一定是要在你刚才addJavascriptInterface 方法中第一个参数类中的方法, 并且要添加 @JavascriptInterface 注解,用于表明这是一个供JS调用的方法; 接下来就是在JS...2.将布局文件中的WebView修改为自定义的WebView 3.使用新的WebView调用方法,执行js方法获取返回值 自定义WebView如下 public String stringByEvaluatingJavaScriptFromString

    81020

    Qt实现Qchart的打印和打印预览的几种方法

    实现打印预览和打印,是挺常用的功能。把其他一些内容如QTextBrowser或者QEditText打印和打印预览是容易的,因为它们都自带了print方法,可以直接输出到printer。...这里介绍下Qt实现Qchart的打印和打印预览的几种方法。 首选介绍下Qt如何实现打印预览功能。 打印预览的实现 使用Qt自带的QPrintPreviewDialog和QPrinter。...,打印预览_尔容又夏的博客-CSDN博客_qt打印预览 QT实现打印预览及生成Pdf功能_小MarkK的博客-CSDN博客_qt打印pdf 【QT5】QPixmap的使用_&Mr.Gong的博客-CSDN...博客_qpixmap用法 C/C++ Qt QChart 绘图组件应用_LyShark 孤风洗剑的博客-CSDN博客 1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机...,打印预览_to.to的博客-CSDN博客

    2.2K10

    C# 调用js库的方法

    要用到两个算法,一是turf.js库的booleanPointInPolygon方法,判断经纬度坐标是否在区域内;二是经纬度纠偏算法,因为对方给的区域坐标集合有偏移,需要纠偏。...这两个算法,网上找C#的实现,一是不好找;二是找来的不信任,我还要测试以确保没有问题。我之前做电子地图使用过turf.js库和js版本的纠偏算法,比较信任,确定没有问题。...所以我就打算通过C#调用js库的方法,来实现数据处理。 安装ClearScript ClearScript是微软开源的js引擎,支持windows、linux、mac。...calc.js通过调用leaflet.mapCorrection.js和turf.v6.5.0.min.js中的方法实现功能,文件内容如下: function calc(lng, lat, polygonStr...= ASCIIEncoding.UTF8.GetString(bArr); } _engine.Execute(js); C#调用js方法实现经纬度坐标纠偏 double lng = Convert.ToDouble

    11.5K40

    JS魔法堂之实战:纯前端的图片预览

    一、前言                                   图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了。...先不管文件异步提交的解决方案,就是服务端清理那些临时的预览图片已经增加不少工作量了。   偶然从MDN上找到纯前端图片预览的相关资料,经过整理后记录下来以便日后查阅。...当没有执行读取操作时,调用该方法会抛DOM_FILE_ABORT_ERR异常。...因此假如使用IE11,但文本模式却设置为10以下,那就没木有办法实现图片预览了。  ...'webkitURL' : 'URL']['createObjectURL'](blob); }; 注意: window.URL.createObjectURL 生成的数据链接是独占内存的,因此若不时用时需要调用

    2.4K60

    关于IE打印预览内容显示不全的问题解决「建议收藏」

    眼下在调整一个页面打印功能的时候,发现多行文本框TextArea在页面显示的时候,多行文本能够正常显示,可是在打印页面的时候。部分内容就被遮挡住了, 苦思冥想不得其解,后来还是请教了美工。...首先查了下TextArea的CSS样式,没有固定Height属性。可是IE开发人员工具F12。跟踪样式里TextArea是有Height的,这个就是实际高度!(输入东西多Height就大。...打印预览高度貌似和页面实际高度是一样的,可是打印预览页面的宽度没有表单页面宽,导致每行显示的字数少。从而行数添加。超出了实际高度,所以就被遮挡住了。 要做的就是。...也能够给TextArea一个固定宽度,实现二者的兼容,于是又给TextArea添加 一个 Width,基本搞定。打印页面输入文字非常多的时候,也不会显示不全了, 只是二者的显示效果依旧不是一致。

    2.1K20

    vue调用js文件_vue调用其他js文件中的方法

    本文主要介绍了vue引用js文件的多种方式,本文大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 1、vue-cli webpack全局引入jquery (1) 首先 npm...(2)在webpack.base.conf.js里加入 var webpack = require("webpack") (3)在module.exports的最后加入 plugins: [ new...了. 2、vue组件引用外部js的方法 项目结构如图: content组件代码: js方法 (1) 首先 npm install jquery –save (–save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖...(){ console.log($) } } 就不会有了,原因可能是得符合vue中js的写法吧 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    18.9K50
    领券