通过键盘触发 JQuery 模态框的 Ctrl+P 打印

2024-03-22

我有一个在 JQuery 模态框中弹出的文档。该文档末尾有一个打印按钮,只需打印弹出框中的文档。

我正在寻找一种解决方案,可以通过按 Ctrl+P 打印弹出框。现在 Ctrl+p 打印所有页面,包括背景...我只是希望找到一个解决方案,帮助我仅在弹出窗口中打印文档。

我的 JQuery 模态框位于 iFrame 中,并按以下方式显示:-

<div id="frameContainer">
      <iframe id="lightboxFrame" width="950px" scrolling="auto" height="500px">
         <!DOCTYPE html>
           <html>
             <head>
                <body> (Whole Document in a Div) </body>
             ...

这是弹出 HTML 中打印弹出文档的 DIV。

<div id="edit-actions" class="form-actions form-wrapper">
   <input id="print-submit" class="form-submit" value="Print this Survey" name="print" onclick="printAssessment()" type="button" />
</div>

这就是我所做的:-

 $(document).keydown(function(event) {
        if (event.ctrlKey==true && (event.which == '80')) { //cntrl + p
            event.preventDefault();
            printAssessment();
        }
    });

    function printAssessment() {
        //alert("Print the little page");
        window.print();
    }

当我按 Ctrl+P 但它仍然打印整个页面时,该函数肯定被调用。我希望它只打印模态框。奇怪的是,当我按下模态框内的打印按钮(它使用相同的功能)时,它会正确打印。

Thanks,

第一次编辑:-

现在部分工作。

当我将 PrintAssessment() 的函数更改为以下内容时,它可以工作:-

  function printAssessment() {

        window.frames["lightboxFrame"].focus();
        window.frames["lightboxFrame"].print();

    }

但是,奇怪的是,当我第一次单击 Ctrl+P 时,它才会打印。当我尝试再次打印时,它一直给我这个错误:-

Uncaught TypeError: Cannot call method 'print' of undefined 

or

Uncaught TypeError: Cannot call method 'focus' of undefined 

Thanks.


代替 :

 window.print();

您可以打印 iframe 的内容,如下所示:

$('#lightboxFrame')[0].contentWindow.print();

将下面的代码放入您的函数 print Assessment() 中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过键盘触发 JQuery 模态框的 Ctrl+P 打印 的相关文章

  • 使用 qTip2 确认工具提示对话框?

    因此 当用户单击删除按钮时 我尝试创建一个小型确认对话框 内联 工具提示 我想象它看起来有点像这样 但带有小文本和 确定 和 取消 按钮 但我不是来问如何设计它的 我更喜欢使用 qTip2 作为该工作的插件 但如果你有更好的选择 我也会选择
  • 插入标准模式文档中的动态 iframe 默认为怪异模式

    我有一份当前正在返回的父文档CSS1Compat from document compatMode 当我使用 jQuery 添加一个空白 iframe 时 如下所示 body append 并检查新 iframe 的 compatMode
  • 更新输入的插入符位置并在放置事件上插入文本

    背景 我正在尝试拖放 div 里面的元素 div
  • 从jquery获取httpreferrer的正确方法

    命令 document referrer 是使用 Jquery 获取引荐来源网址的正确方法吗 怎么样 document referrer
  • $.each([集合]) 与 $([集合]).each()

    两种方法似乎产生相同的结果 http jsbin com owedo 但我一直很难真正说服人们第二种方法有效 因为它显然并不为人所知 Create some data var foo vals id foo id bar Common Me
  • jQuery醉酒:手动触发器和delayIn

    我正在使用 jQuery 的 Tipsy 插件 每当我尝试使用手动触发器和delayIn调用醉酒时 delayIn似乎不起作用 interest tipsy trigger manual gravity n html true delayI
  • jQuery ajax 调用在 Mac Safari 和 Chrome 浏览器上返回空错误

    我几天来一直在寻找解决方案并尝试修复 但没有任何改变 老板使用的是 Mac 而我没有 所以我让他尝试重复修复并将输出转发给我 到目前为止还没有运气 因此 当前的设置是 我有一个包含用户名和密码输入的表单 该表单在经过验证后提交 验证是一个
  • 使用 RequireJS 的条件注释仅加载 IE7/8 jQuery

    我在我的项目中使用 Require JS 它加载 jQuery 和其他一些与整个网站和所有浏览器相关的 JavaScript 文件 但是 我需要在 Internet Explorer 7 和 8 上使用一些条件 jQuery 我尝试将其放在
  • 将脚本 Jquery 转换为 Javascript

    我需要将以下 jquery 脚本转换为 javascript
  • JavaScript 和 jQuery 有什么区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 可能的重复 jQuery 和 JavaScript 有什么区别 https stackoverflow com questions 2
  • 在JQuery中加载本地json文件

    这里是初学者 我一直在尝试与该主题的答案不同的方法 但它们似乎都不起作用 我看到这个问题已经被问了很多 但不知何故我仍然找不到答案 我想使用本地 json 文件 该文件与我的 JavaScript 和 HTML 文件位于同一文件夹中 这样我
  • 就性能而言,在页面上显示 1000 张图像的最佳方法是什么?

    我试图在一个页面上显示 1000 个相当小的图像 确实很多 但超出了我的控制范围 当一次性加载所有图像时 一次渲染 1000 张图像 性能显然会受到严重影响 我尝试在滚动时应用图像 src 大量 250px 滚动 25 个图像加载等 然后尝
  • 缓动不适用于toggleClass() 或addClass()

    我有一个在页面上显示和隐藏实用工具栏的功能 我想将其动画化 这不是动画 类 标志 是空的 min 类只是更改背景图像以及实用工具栏的高度和绝对位置 我究竟做错了什么 document ready function var ubar ccUt
  • 如何在div的整个内容中禁用jquery mobile的样式?

    我从事 jQuery Mobile 的项目 在页面中 我想使用mobilescroll对于选择 I try data role none 但这对孩子不起作用 和mobilescroll创建自己的标签 如何在整个内容中禁用 jQuery Mo
  • 数据表、计算列

    我正在尝试使用 DataTable 插件在表中创建一列 该列是使用前两列的值计算的 像这样的东西 价格 数量 总计 Price QTY Total 5 2 10 10 3 30 4 1 4 我觉得它应该很简单 但我无法让它发挥作用 这是我试
  • 如何使用 jQuery 将 html5 视频播放器静音

    我找到了如何使用 jquery 暂停和播放视频 video get 0 play video get 0 pause 但我找不到静音按钮 如果没有 jquery 解决方案 我只需一个 onclick js 解决方案即可 我需要尽快 还有有办
  • 请解释JQuery中$({deg: 0})的含义

    有人可以向我解释一下这是什么意思吗 deg 0 in 使用 jquery animate 跨浏览器进行 CSS 旋转 https stackoverflow com questions 15191058 css rotation cross
  • 为什么 Jqgrid 冻结列似乎不能与过滤器行和过滤器标题一起使用?

    我无法让冻结列与 jqgrid 4 3 0 一起使用 我唯一能想到的是我有一些不是开箱即用的具体东西 我在顶部使用过滤行 我使用 cloneToTop true 显示网格顶部的所有按钮 我有以下代码 用于在 jqggrid 顶部显示过滤器状
  • 让 hashchange 事件在所有浏览器(包括 IE7)中工作

    我有一些代码 由另一位开发人员编写 在 WordPress 内部进行 AJAX 页面加载 例如 没有页面重新加载 当您单击导航项时 AJAX 会刷新主要内容区域 我的问题是它在 IE7 中被破坏了 我不知道从哪里开始调试 最初的开场白是 v
  • jquery 验证数组输入的添加规则[重复]

    这个问题在这里已经有答案了 我想将复选框值存储在数组中 但是 我无法使用验证规则 因为名称是selectList 代替selectList 我尝试了 id 但似乎规则只绑定到名称 html

随机推荐