正如它在主题中所说,我将为基于Web的应用程序创建一个功能,允许用户直接发送打印而不提示任何对话框只需进行打印即点击和打印,简单!但不适合我:(.
请,建议什么是最好的选择,我应该怎么写(技术).
建议请!
谢谢.
编辑:打印应该在用户的默认打印机上发送.
我一直在使用下面的代码打印我的页面:
window.print();
Run Code Online (Sandbox Code Playgroud)
下面的图片是Google Chrome浏览器中的打印预览.它有两个主要按钮:print和cancel.

我想知道用户是否单击了print或cancel按钮.我做的是使用jquery:
打印预览的HTML代码:
<button class="print default" i18n-content="printButton">Print</button>
<button class="cancel" i18n-content="cancel">Cancel</button>
Run Code Online (Sandbox Code Playgroud)
Jquery代码:
$('button > .cancel').click(function (e) {
alert('Cancel');
});
$('button > .print').click(function (e) {
alert('Print');
});
Run Code Online (Sandbox Code Playgroud)
我试过上面的代码没有运气.我在哪里错过了?
我有一个库组件,它使用当前窗口大小来确定库项目的大小.我还挂钩了窗口调整大小事件,以便在调整窗口大小时正确调整图库项目的大小.
在Chrome中,如果用户随后打印图库,则不会调整项目的大小以适合打印的页面.相反,他们只是使用为窗口大小计算的最后一个大小.即使在打印选项中从纵向切换到横向也是如此.
在打开打印对话框和页面布局从纵向切换到横向时,有没有办法强制对重新渲染组件做出反应?我认为打印对话框会重新呈现具有新尺寸的页面,但似乎并非如此.
在这里,我试图禁用Ctrl+,P但它不会让我警觉,它也显示打印选项
jQuery(document).bind("keyup keydown", function(e){
if(e.ctrlKey && e.keyCode == 80){
alert('fine');
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用jQuery或JavaScript 禁用Ctrl+ P组合.
谢谢
其他 许多答案也涵盖了正在运行的Javascript脚本如何判断其当前窗口是否处于活动状态。但是,这是一组相当严格的选择,并且之间没有区别(例如)
尽管在后两种情况下该网页仍然对用户可见,但所有这些都被视为无效。
尽管有证据表明,鉴于网络浏览器沙箱的工作原理,从技术上讲这是不可能的,但我仍然希望能够发现上述两者之间的差异。例如,为(1)或(2)暂停动画,但为(3)或(4)保留动画。我想知道是否Javascript(加上框架,我想是WebAssembly)提供了一种机制来确定这一点-否则,是否有任何特定的浏览器具有从一页的javascript代码中进行确定的机制。
有没有办法从UIWebView中检测window.print并对其进行响应?我在我的UiWebView中打印,需要有办法从UIWebView对该事件做出反应.
我正在使用matchMedia()。addListener来检测Safari中的暗/亮模式主题首选项更改,但是在WebStorm中,使用addListener标记为已弃用,只是说要参考文档以替代它。
我已经通读了MDN文档,但我不明白我应该在addEventListener中侦听哪种事件类型来代替addListener?
window.matchMedia("(prefers-color-scheme: dark)").addListener(() => this.checkNative());
window.matchMedia("(prefers-color-scheme: light)").addListener(() => this.checkNative());
Run Code Online (Sandbox Code Playgroud) 我正在使用此处找到的代码:检测浏览器打印事件来检测用户是否想要打印页面。到目前为止,它按预期工作。
在“afterPrint”函数中,我调用一个函数,该函数创建并附加一个 iframe,其中包含另一个页面,该页面具有不同的、对需要打印的内容更加打印友好的布局:
function printIframe (printsrc) {
var iframe = $('iframe#print');
if (iframe.length == 0)
iframe = $('<iframe id="print" />').attr('src', printsrc).css("width", "0px").css("height", "0px").css("position", "absolute").css("left", "-9999px").appendTo($("body:first"));
else
iframe.attr('src', printsrc);
};
Run Code Online (Sandbox Code Playgroud)
在更适合打印的页面上,我创建布局,然后调用:
window.print();
通过创建和附加 iframe,用户可以停留在浏览器中的页面上,但打印布局有所不同。
加载打印机友好页面的唯一方法似乎是取消打印对话框中的打印,然后触发 afterPrint 功能。是否有可能在 javascript 中取消用户的打印对话框?
谢谢,
托马斯
当用户在Firefox或Internet Explorer等浏览器上选择"文件>打印",或点击运行以下javascript的链接时
window.print();
Run Code Online (Sandbox Code Playgroud)
有没有办法有条件地检查这种模式并禁用一些JavaScript.
我试图这样做是因为我有一个插件,它添加了自己的圆角边框自定义标记,甚至在打印特定的样式表我不能覆盖这些样式,我不希望打印出页面时出现边框.
编辑:与插件无关,通过javascript完成样式更改,用于创建选项卡式用户界面,我已经完成打印特定的CSS来覆盖样式,当我使用Firefox Web开发人员工具栏> CSS>显示CSS时,它工作正常通过媒体类型>打印..但当我打印它不起作用时,javascript接管并更改样式..如果我完全禁用javascript然后打印显然再次正常工作.
谢谢
javascript ×6
jquery ×3
printing ×3
browser ×2
activex ×1
client-side ×1
html ×1
iframe ×1
matchmedia ×1
reactjs ×1
uiwebview ×1
visibility ×1
window ×1