我需要在打印时以不同方式格式化文档。基本的东西,媒体打印与屏幕,但这个特定的网页正在动态插入一些内联样式。如何在发送打印之前将其剥离?
我正在使用jQuery添加一个元素,该元素在屏幕上不可见但出现在print(#myElement)中。所以我试图捎带那个元素,但并没有真正成功。
if ($('#myElement').is(':visible')) {
$('.myContent').attr('style', '');
}
我错过了什么?
感谢。
答案 0 :(得分:0)
以下是一个如何使用普通的,普通的JS来实现这一点的示例:http://jsfiddle.net/AfdzW/。基本上,您只需要定位要删除其内嵌样式的DOM元素,并在其上调用removeAttribute()
方法。
function clearInlineStyles(sel) {
var els = document.querySelectorAll(sel);
[].forEach.call(els, function(e) {
e.removeAttribute('style');
});
}
clearInlineStyles('div');
作为替代方案,如果您只希望定位某些内联样式,则可以使用$.fn.css()
jQuery方法单独定位这些样式:
$.fn.removeSelectedStyles = function() {
var styles = arguments;
this.each(function() {
var $that = $(this);
[].forEach.call(styles, function(style) {
$that.css(style, '');
});
});
}
$('div').removeSelectedStyles('background', 'height');
这是一个 fiddle ,展示了jQuery插件的工作原理