window.print()JavaScript的特征检测解决方案

jin*_*ula 8 javascript printing browser-feature-detection

有没有办法检测window.print()的支持?我更愿意检测这个功能本身,而不是试图检测我是在移动浏览器或桌面,iOS或Android或我可能在哪个特定的移动浏览器上.

背景

以下链接让我相信:

  • Apple要求所有第三方浏览器都使用UIWebView
  • 运行window.print()时,非Safari应用程序中使用的UIWebView不执行任何操作
  • 运行window.print()时,iOS上的Safari会执行适当的操作

链接:

PS我在Modernizr文档中查看它是否可以检测到对打印的支持,但没有发现任何内容.

PPS我看到Chrome for iOS确实支持打印,尽管是通过GCP.在这里,只是寻找功能检测而不是打印解决方案.(https://support.google.com/chrome/answer/3049815?hl=zh-CN&ref_topic=1719889)

编辑 为了澄清,似乎window.print不是任何标准的一部分:https://developer.mozilla.org/en-US/docs/Web/API/Window.print.如果window.print存在于某些浏览器中但没有做任何有用的事情(例如,没有连接到适当的打印功能的任何特定于浏览器的实现),这最终是我想要检测的.

我的猜测是,移动浏览器供应商将为window.print定义一些内容,以便任何试图调用它的脚本都不会出错; 但是调用可能是No op,或者可能向操作系统发送OS忽略的请求.

我越是想到这可能会如何运作,我就会越来越没有希望通过一种简单的JavaScript方法来检测这个功能,这太糟糕了.

jin*_*ula 2

这个问题确实与确定浏览器是否支持打印重复。请参阅地毯吸烟者对此问题的评论和所提到的答案。我同意,这可能是我们目前能做的最好的事情。

即使 window.print 不属于任何标准,如果浏览器供应商实现并商定了一些用于检测的 API,那就太好了。也许他们都在内部致力于该功能的适当实现,因此不想扔掉一些以后无用的临时东西。那好吧。