首页 \ 问答 \ 确定浏览器是否支持打印(Determine whether browser supports printing)

确定浏览器是否支持打印(Determine whether browser supports printing)

我认为这个答案几乎肯定是“不”,因为我已经做了一些测试和四处搜索,但有没有什么技巧可以检测window.print()是否可以在页面内工作(即从JavaScript )? 我知道,即使在台式机/笔记本电脑上,也无法知道系统中是否配置了打印机,但至少浏览器会打印一个对话框。

我的Android手机有一个window.print()函数,但它(不出意外)没有做任何事情。

我再次提出这样的问题,因此在SO的主题上有一个很好的问题:-)


I think the answer to this is almost certainly "no", because I've done a little testing and searching around, but is there any trick to detect whether window.print() even might work from inside a page (i.e., from JavaScript)? I know that even on a desktop/laptop it's never going to be possible to know whether there's a printer configured on the system, for example, but at least the browser will put up a print dialog.

My Android phone has a window.print() function but it (unsurprisingly) doesn't do anything.

Again I'm asking mostly so there's a good question on the topic at SO :-)


原文:https://stackoverflow.com/questions/9268840
更新时间:2019-06-21 03:33

最满意答案

不幸的是它看起来像一个没有。 window.print()函数不是EMCAScript规范的一部分。 这意味着它不需要成为JavaScript语言的一部分,也没有适合它的实现的文档。 这是未定义的行为,因此对它进行测试看起来非常困难。

资料来源:

编辑:

我写的测试我的浏览器的可爱小脚本,只是检查打印功能是否存在,然后要求打印:

if(window.print) {
    if(confirm('I can print. Would you like to?'))
        window.print()
}

Unfortunately it looks like a no. The window.print() function is not part of the EMCAScript specification. This means that there's no requirement for it to be part of the JavaScript language, and no proper documentation for its implementation. It's undefined behaviour and so testing for it looks very difficult.

Sources:

EDIT:

Cute little script I wrote to test my browsers, just checks the print function exists and then asks to print:

if(window.print) {
    if(confirm('I can print. Would you like to?'))
        window.print()
}
2017-03-21

相关问答

更多

如何在Python中将标签集转换为属性元组(“多热”编码)?(How to convert set of tags to belongness tuple (“multi-hot” encoding) in Python easy?)

你可以通过列表理解来达到它,添加条件是否标签在标签中,如果是,则插入1否则为0。 multihot = [1 if tag in tags else 0 for tag in taglist] You can reach it with list comprehension, adding condition whether tag is in tags, if yes, insert 1 else 0. multihot = [1 if tag in tags else 0 for tag

自己附加两个ng-repeat(attach two ng-repeat themselves)

有两种方法可以做到这一点。 首先是服务器端:有一个请求返回正确的数据集。 我将专注于客户端,因为它是客户端问题。 我建议你创建一个包含用户和值的列表: var tabuser = JSON.parse(localStorage.getItem("myid")); console.log(tabuser); var urls = []; $scope.data = []; for(i = 0; i < tabuser.length; i++){

毕达哥拉斯检查哈斯克尔(Pythagoras check Haskell)

你的问题并不是真的包含任何问题,但是从你写的内容来看,很明显你正在努力克服Haskell的语法。 我从你的代码中看到的猜测是,你将Haskell的模式匹配语法与命令式语言典型的一系列语句混合在一起。 您要实现的目标可以通过以下方式完成: square :: Int -> Int square x = x*x pyth :: Int -> Int -> Int -> Bool pyth a b c = a' + b' == c' where a' = square a

检查IP地址的前X位数(Check first X digits of IP address)

你有没有尝试过: bool IsCorrectIP = ( ipstring.StartsWith("10.80.") ); 对不起,如果答案太简洁了。 但那应该可以解决手头的问题。 Have you tried: bool IsCorrectIP = ( ipstring.StartsWith("10.80.") ); Sorry if the answer is too terse. But that should resolve the issue at hand.

仅按月和年份分组日期(Group dates by only month and year)

尝试这个 SELECT DATE_FORMAT(duedate,'%M %Y') duedatemonth, COUNT(*) count FROM Table1 GROUP BY year(duedate), MONTH(duedate) 在这里演示 将输出: DUEDATEMONTH COUNT January 2012 2 February 2012 2 January 2013 1 March 20

将完成的构建发布给另一个Jenkins(Publish finished build to another Jenkins)

Build Publisher插件读取: [...] 然后将结果发送给面向外界的另一个Jenkins。 来自私人Jenkins的构建记录通过HTTP发送给公共Jenkins。 我将此解释为发布的结果只是为了在公共服务器上查看。 就像书籍出版商一样:他或她不会写书或延续书籍。 他或她只是发表他们阅读。 请参阅从jenkins外部调用jenkins构建? 如何从远程触发Jenkins服务器上的构建,即从您的公共 私有触发器。 The Build Publisher Plugin reads: [..

多组合逻辑应使用开关或IF(Multiple combinations logic should use switch or IF)

有点像这样 $total = 0; if( preg_match('/([^*\s]+)/', $str, $match ) ){ $total = count( $matches[1]); } echo $total; 如果您需要知道它们匹配的位置,请改用它 $str = '* 0 * * *'; if( preg_match_all('/([^*\s]+)|\s/', $str, $match ) ){ print_r( $

在jOOQ中Table 之间有什么区别(What is the difference between Table and in jOOQ)

Nutshell,TL; DR版本: 你应该只参考Table 。 jOOQ的内部也使用TableLike 完整说明: jOOQ的DSL充满了小标记接口,只是因为Java语言缺乏对union类型的支持。 例如,在SQL语法中, Table<?> (如在CREATE TABLE x ... )和Select<?> (如在SELECT * FROM ... )是相同的,当你把它放在FROM子句。 在“理想的”Java语言中, FROM子句将被声明为: interface SelectFromStep

相关文章

更多

最新问答

更多
  • 图像TapGestureRecognizer未触发(Image TapGestureRecognizer not firing)
  • 从数组中选择项目(Selecting items from an array)
  • PhpStorm:简单的PHP表单不发布(PhpStorm: Simple PHP form not posting)
  • 如果语句只有Javascript中的数字(If statement with only a number in Javascript)
  • 截图Android中的黑色(Screenshot Black in Android)
  • 默认值如何在数据库中内部工作?(How does default value internally work in Database?)
  • 左连接不加入单个记录(Left Join Not Joining with a Single Record)
  • 在#sign drupal之后获取url参数(get url parameter after # sign drupal)
  • Crontab CD到目录(Crontab CD to Directory)
  • #inf c ++ visual studio(#inf c++ visual studio)
  • 使用Python将指数修改的高斯曲线拟合到数据(Fitting an exponential modified gaussian curve to data with Python)
  • Javascript - 具有音高和持续时间控制的文本到语音(Javascript - text to speech with pitch and duration control)
  • 群组和用户有多少通过?(Groups and Users has many oder has many through?)
  • 如何在简单的二叉树中选择节点所在的哪一侧?(How to pick which side a node is on in a simple binary tree?)
  • 在ImageView上添加TextView(Android)(Add TextView over ImageView (Android))
  • 使用工厂方法创建泛型(Using Factory Method to Create Generics)
  • cordova 4.1.2中的平台特定代码(platform specific code in cordova 4.1.2)
  • 使用php格式化日期[复制](Format date using php [duplicate])
  • 在Python中解析年,月,日,小时,分钟,秒(Parsing year, month, day, hour, minute, second in Python)
  • 用jquery替换图像和类(Replacing image and class with jquery)
  • 导入的module.submodule命名空间干扰彼此(imported module.submodule namespaces interfering with eachother)
  • 播放框架:提交按钮似乎不起作用(Play framework: Submit button doesn't seem to work)
  • 段落包括通过过渡带来的div(Paragraph covers div brought through transition)
  • 使用processing.Manager时对象是否重复?(Object duplicated when using processing.Manager?)
  • lxde意外退出(lxde quits unexpectedly)
  • 真正的Maven依赖是什么?(What really are Maven dependencies?)
  • 如何在我的代码中修复getJSON方法错误?(how to fix getJSON method error in my code?)
  • Google Analytics状态:已安装跟踪 - 但无法正常运行(Google Analytics Status: Tracking Installed - but isnt working)
  • 在模型文件中的非对象上调用成员函数num_rows()(Call to a member function num_rows() on a non-object in model file)
  • 有关UNIX中fork()函数的问题(Questions about the fork() function in UNIX)