如何在 javascript 中从弹出窗口进行打印?

2024-01-10

我有一个 .Net 应用程序,它动态创建一个小型 HTML 页面,并使用 javascript document.open 方法将其弹出在新窗口中。具有该功能的一切都工作正常。

现在我想向打印该页面的 HTML 页面添加一个按钮。我尝试使用以下代码但无济于事:

<a href='print.html' onClick='window.print();return false;'>
<img src='images/printer.png' height='32px' width='32px'></a>

当在弹出窗口中单击该按钮时,没有任何反应。但是,当该页面的源代码作为单独的页面保存并加载到浏览器中时,打印按钮可以正常工作。 因此看来问题是由于代码位于弹出窗口中而引起的。 [现在的问题似乎是代码在弹出窗口打开后写入。]有谁知道解决这个问题的方法或任何替代方案?

EDIT:

我尝试过的其他方法具有相同的结果:

<input type='button' onclick='window.print()' value='Print' />

and

<a href='javascript:window.print()'>
<img src='images/printer.png' height='32px' width='32px'></a>

再次编辑:

上面的代码在 Firefox 中有效,但在 IE7 中无效。关于 IE 的解决办法有什么想法吗?

再次编辑:

这是一个使用代码的测试用例npup https://stackoverflow.com/users/294150/npup posted https://stackoverflow.com/questions/2448676/how-do-you-print-from-a-popup-window-in-javascript/2460794#2460794以下。我没有将弹出窗口的代码放在单独的 html 文件中,而是打开一个空白 url,然后将代码写入其中。此步骤似乎是导致问题的原因。

<html>
<head>
    <title>main</title>
</head>
<body>
    <h1>
        Pop & print</h1>
    <button onclick="pop();">
        Pop</button>

    <script type="text/javascript">
      var POP;
      function pop() {
          var newWin = window.open('', 'thePopup', 'width=350,height=350');
        newWin.document.write("<html><head><title>popup</title></head><body><h1>Pop</h1>" +
            "<p>Print me</p><a href='print.html' onclick='window.print();return false;'>" +
            "<img src='images/printer.png' height='32px' width='32px'></a></body></html>");
      }
    </script>

</body>
</html>

这是一个对我有用的解决方案:

newWin.document.write( newhtml );
newWin.window.location.reload();    // this is the secret ingredient
newWin.focus();                     // not sure if this line is necessary
newWin.print();

我不是 100% 确定为什么会这样,但我认为它与以下之一有关:(1) IE 安全问题,(2) 范围问题(即创建新文档后,IE 混淆了哪个)要打印的文档),或 (3) 计时问题 - 文档尚未准备好“接受”打印命令。无论如何,重新加载后,打印对话框不会出现问题。

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

如何在 javascript 中从弹出窗口进行打印? 的相关文章

  • 有没有一种方法可以在没有输入的情况下发送表单值

    假设我有以下表格
  • 以下文档我无法创建 Vue.js 3 的实例

    The code https stackblitz com edit vue ttt file src main js https stackblitz com edit vue ttt file src main js 问题 我正在尝试在
  • 如何将 Ajax.BeginForm MVC 助手与 JSON 结果一起使用?

    我正在尝试使用 ASP NET MVC Ajax BeginForm 帮助程序 但不想在调用完成时使用现有的内容插入选项 相反 我想使用自定义 JavaScript 函数作为回调 这可行 但我想要的结果应该以 JSON 形式返回 不幸的是
  • 了解 C# 中的协变和逆变接口

    我在一本有关 C 的教科书中遇到过这些内容 但我很难理解它们 可能是由于缺乏上下文 对于它们是什么以及它们有什么用处 是否有一个很好的简洁解释 编辑以澄清 协变接口 interface IBibble
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • DBNull 怎么会不等于 DBNull

    我有以下代码行 if DBNull Value Equals o o null where o is object o in row ItemArray我不断收到错误 gt Xml type List of xdt untypedAtomi
  • 正则表达式获取模式的最后一次出现

    我有一个字符串 我需要选择最后一次出现的模式 该字符串是 1302638400000 0 0 1302724800000 0 610 64999999999998 1302811200000 0 2266 6500000000001 130
  • 将 KeyDown 事件传递给其他控件

    我正在编写一个 C WinForms 应用程序 NET 4 0 我有一个WinFormsControl on a Form 用户开始使用键盘输入内容后 另一个Control出现 那Control是某种文本输入 我想将用户输入发送到该Cont
  • 从 Microsoft Chart Control 单击数据标记获取鼠标单击事件

    我的应用程序中有一个 net 4 0 点图 我想捕获鼠标在数据标记上的点击 当用户单击特定点时 我想转到绑定表中数据来自的行 此功能是否内置于 net 图表控件中 编辑 我发现我可能实际上想要光标位置值 而不是要求用户单击特定的数据点 一旦
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 如何在React中动态分配属性?

    这是一个有两个参数的函数 我要创建的标签的名称 具有以下属性的对象 Using React 我创建一个组件并将该元素渲染到 DOM 问题是我想向元素添加属性 但它不允许循环在元素内设置属性 var Element function elem
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c

随机推荐

  • 如何使用 Python3 连接到 mac 上 docker 内运行的 SQL Server?

    我想使用 Python 连接到在 Docker 容器中运行的 SQL Server 数据库 目前 我面临的问题是 错误 01000 01000 unixODBC 驱动程序管理器 无法打开 lib SQL Server 找不到文件 0 SQL
  • 如何将 JSON 响应传递到另一个视图

    我是 flutter 新手 开始在 flutter 中开发我的第一个应用程序 但在将数据从一个 dart 文件路由到另一个 dart 文件时面临问题 下面给出了我的代码示例 我在 main dart 中定义了这样的路线 final rout
  • 检查对象是否为 Class 类型

    我有一个方法可以接收NSArray of Class对象 我需要检查它们是否都是Class使用以下代码生成的类型 NSMutableArray arr NSMutableArray alloc init arr addObject NSOb
  • Quartz作业存储与活动数据相关吗?

    据我了解石英官方文档 http quartznet sourceforge net tutorial lesson 9 html AdoStore 必须用于活动数据存储 如 JobDataMap 和其他数据 如果我错了请纠正我 除了这个说明
  • Xcode 有代码自动格式化功能吗?

    有什么方法可以在 Xcode IDE 中自动格式化源代码吗 Xcode 中并没有真正的自动格式化选项 有一个选项 I Control I 重新缩进代码 这将根据您首选项中设置的制表符宽度重新对齐代码 但仅此而已 如果您使用像 TextMat
  • 使用 Globalize 和Friendly_id 将同一页面重定向到不同语言

    在过去的几个小时里 我一直在挠头 寻找答案 但我无法在任何地方找到它 我的宝石文件 Use globalize for translating models gem globalize github ncri globalize for R
  • Angular 2:检查单击元素时是否按下了 Shift 键

    在 Angular 2 应用程序中 我希望点击事件在以下情况下触发不同的内容 按住 Shift 键 如何实现这一目标 html如下 div class item div 我想做这样的事情 toggleSelected obj if shif
  • 实现 Comparable 以使用字符串按字母顺序排序

    我希望有一个可比较的对象 在这种情况下在 TreeSet 中使用它 我的对象有一个名称字段 我希望它按字母顺序排序 我首先想到我可以使用字符串的 unicode 值并简单地进行减法 但是 AA 会在 Ab 之后 我是这样开始的 public
  • 连接 RAISERROR 中的消息

    这里正确的语法是什么 If timestamp lt Select PromoStartTimestamp From promo RAISERROR Code not valid until Select PromoStartTimesta
  • Android/Java 上的数据报传输层安全 (DTLS)

    有人在 Android 上使用过 DTLS 或者有支持 DTLS 的开源 Java 实现吗 在 Android 上保护 UDP 流量的其他选项有哪些 纯 Java 中尚不支持 DTLS 我们最终通过 JNI 使用 OpenSSL 我怀疑你会
  • 如何使用 maven-bundle-plugin 从导入包中排除版本号?

    我在使用 maven bundle plugin 生成的 MANIFEST MF 时遇到问题 由于某种原因 当我在
  • 运行 PHPUnit 时出错

    当我尝试运行时出现以下错误phpunit 从我的项目的测试文件夹中 PHP Fatal error Call to undefined method PHP CodeCoverage Filter getInstance in usr sh
  • 排除 Spring-data-rest 资源的某些字段

    我正在尝试将 Spring data rest 与 spring data mongodb 一起使用来公开只读资源 我遇到的问题是我想对我的文档有不同的看法 假设我在文档中有一些私人信息 我不想公开它们 所以我尝试了几种方法 我读了这篇文章
  • Plotly python离线-点击时访问url?

    是否可以配置一个plotly https plot ly python绘图以便用户在单击某个数据点时被带到特定的 url 我的预期用途是条形图 我希望能够单击一个条形图 然后转到一个 url 每个条形图都配置有不同的 url 我正在使用pl
  • 如何在 highcharter 中悬停时获得系列突出显示?

    Highcharts 具有这个巧妙的功能 当将鼠标悬停在柱形图中的条形上时 整个系列都会突出显示 最好实时查看here https www highcharts com demo column negative 在 R 包装器中highch
  • 使用 dev_appserver.py 进行覆盖不包括我的项目文件

    我运行以下命令覆盖范围3 6 https pypi python org pypi coverage Appengine 1 8 0 64 位 Ubuntu 13 04 上的 Python 2 7 4 coverage run dev ap
  • 如何在 C# 中检测任何 Excel 单元格的更改?

    我正在编写一个 Excel VSTO 插件 并且希望获取特定工作表中的单元格更改事件 如何才能做到这一点 检查Excel Application SheetChange事件处理程序 基本上 只要任何工作表中的任何单元格发生更改 它就会触发
  • 使用 Carrierwave 重命名上传的文件

    我正在使用 Carrierwave 上传文件 并且可以正常工作 我的问题是尝试更改上传文件的名称 在生成的 uploader rb 中有一个我认为我应该使用的方法 def filename something jpg if original
  • vim 键映射参考

    我刚刚安装了 command t 插件以及将其映射到 cmd t 而不是 Leader t 的内容 我对 vim 相当陌生 我不知道按键映射的符号是什么 在哪里可以找到在 vim 中映射组合键时使用的符号的参考 vim 的一个原则是 未记录
  • 如何在 javascript 中从弹出窗口进行打印?

    我有一个 Net 应用程序 它动态创建一个小型 HTML 页面 并使用 javascript document open 方法将其弹出在新窗口中 具有该功能的一切都工作正常 现在我想向打印该页面的 HTML 页面添加一个按钮 我尝试使用以下