我有一个页面,其中包含许多通过jQuery在文档就绪和窗口滚动上定义的功能和样式,甚至确保它在禁用JavaScript时很好地降级。然而,我只是把一个“打印”样式表放在一起,废弃了大部分样式,当我测试它时,我意识到我的jQuery方法在打印和添加回一些背景图像时正在进行。打印时是否可以禁用JavaScript或jQuery,甚至是特定功能?
最大的问题是这件作品,根据之前生成的数字生成一个随机背景图片...它覆盖了我的打印样式表调用background-image:none,即使使用!important标签:
$(document).ready(function() {
$("body").css({backgroundImage: 'url(images/body_bg_'+background+'.jpg)'});
});
谢谢!
答案 0 :(得分:3)
在样式表中定义样式。然后使用JavaScript更改DOM以使这些样式应用于元素,而不是修改样式属性。
这使您可以控制不同的媒体,并保持关注点(语义,表示和逻辑)的分离。
@media screen {
body.something {
background-image: url(images/body_bg_something.jpg);
}
}
$(document).ready(function() {
$("body").addClass('something');
}
那说:
它覆盖了我的打印样式表对background-image的调用:none,即使使用!important
真的不应该那样做。
答案 1 :(得分:0)
您可以打开与弹出窗口相同的页面,不带任何jquery调用/引用,然后调用页面的window.print onload。与googlemaps上的“打印”选项类似。