仅在屏幕媒体上运行javascript/jquery,而不是打印
Run javascript/jquery only on screen media, not print
如何仅在@media screen
上运行jquery函数?
背景:
我有一个screen.css
样式表和一个print.css
样式表。我有两个javascript函数,其中一个我不想在页面的打印版本上运行。
任何
脚本都会在页面加载时运行,因此使用if (Modernizr.mq('only screen')) {$('h1').text('media screen');}
毫无意义,因为它会在您@media screen
时运行您的脚本。
相反,您必须检测媒体查询何时更改,并相应地更改页面。您可以使用类似 enquire.js 来轻松执行此操作:
// This is just an example, be more creative!
enquire.register("screen", {
match: function() {
$('#only-show-on-screen').show();
},
unmatch: function() {
$('#only-show-on-screen').hide();
}
});
在最新的浏览器中,您可以使用matchesMedia:
if (window.matchMedia("screen").matches) {
....
}
如果你也想支持较旧的浏览器,你可以使用像matchMedia这样的polyfill.js
我认为你可以使用Modernizr。虽然,在javascript中必须有一种本机方法。
http://modernizr.com/docs/#mq
我从未尝试过,但它是这样的:
if (Modernizr.mq('only screen'))
{
..
}
当心不支持媒体查询的旧浏览器。
相关文章:
- jquery打印[object XMLDocument]而不是文件内容
- 如何使用jquery打印多选下拉列表中的选定值
- 如何使用jQuery打印文档中的表内容
- 通过jquery打印隐藏数据
- 如何使用javascript/jquery打印数据
- 如何使用jquery打印日期和时间
- 使用javascript/jquery打印文本文件的内容
- 错误-权限被拒绝-jQuery打印预览
- 在IE中使用JS或jQuery打印图像
- 如何使用 Java 脚本或 jQuery 打印表中的特定列
- 使用 jquery 打印 soap 响应
- JavaScript / jQuery:打印取消时关闭窗口
- 如何使用JavaScript或jQuery打印页面时隐藏URL
- 使用 JQuery 打印动态文本框值
- 使用 javascript/jquery 打印选定的页面
- jQuery打印下载的文件
- 将变量分配给表单输入值并使用jquery打印
- 使用jquery打印图像不起作用
- jQuery:打印嵌套数组中多个键的所有值
- 如何使用jquery打印多个条形码图像