2011-02-17 25 views
1

我有一个页面,其中包含许多通过jQuery在文档就绪和窗口滚动中定义的功能和样式,甚至可以确保在禁用JavaScript的情况下它的降级很好。然而,我只是将一个“打印”样式表拼凑在一起,将大多数样式化掉了,而当我测试它时,我意识到我的jQuery方法在打印时添加了某些背景图像并添加回来。打印时是否可以禁用JavaScript或jQuery,甚至禁用特定功能?打印时禁用jQuery定义的样式

最大的问题是这一块,其基于先前生成了一些随机的背景图片...这是压倒一切的我的打印样式表的背景图像的呼叫:使用重要标记时无,偶:

$(document).ready(function() { 
    $("body").css({backgroundImage: 'url(images/body_bg_'+background+'.jpg)'}); 
}); 

谢谢!

回答

3

在样式表中定义您的样式。然后使用JavaScript来更改DOM,使这些样式应用于元素,而不是修改样式属性。

这可让您保持对不同媒体的控制,并保持关注点(语义,表示和逻辑)的分离。

@media screen { 
    body.something { 
     background-image: url(images/body_bg_something.jpg); 
    } 
} 

$(document).ready(function() { 
    $("body").addClass('something'); 
} 

这就是说:

这是压倒一切的我的打印样式表的背景图像的来电:使用时没有,甚至是重要

它真的不应该能够去做。

0

你可以打开相同的页面作为弹出窗口,不带任何jquery调用/引用,然后调用页面的window.print onload。就像Google地图上的打印选项一样。

+0

假设用户从不打扰他们浏览器的内置打印功能... – Quentin 2011-02-17 17:41:23

+0

@David:是的。你是对的。 – Chandu 2011-02-17 17:42:26