因此,我的页面上有一个要打印的div。它使用bootstrap和fontawesome看起来不错。要进行打印,我有一个按钮来创建一个iframe,将externalHTML复制到其主体中,并在其头部复制一些CSS和js,进行一些修改以适合A4纸,然后将其打印出来并移除。事实是,我第一次单击该按钮时,它完全按照我想要的方式精美地显示了chrome的打印页面,但是当我再次单击该按钮时,它会松开某些样式。
我在chrome的devtools的网络标签上注意到,js和css文件第一次加载就很好,但是之后在显示打印窗口时它显示为待处理,仅在我关闭后才加载。
这是按钮调用的功能:
function print1(elem)
{
$('<iframe>', {
id: 'printFrame',
name: 'printFrame',
class: 'printFrame',
style: 'display: none'
}).appendTo('body').contents()
.find('head')
.append('<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />')
.append('<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">')
.append('<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Roboto+Condensed">')
.append('<link rel="stylesheet" href="/css/wscustom.css" type="text/css">')
.append('<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js" />')
.append('<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" />')
.append($('style')[0].outerHTML)
.parent()
.find('body')
.css('font-family', 'Roboto, sans-serif')
.css('font-size', '14px')
.css('line-height', '1.428571429')
.css('color', '#333')
.css('box-sizing', 'border-box')
.append('<div class="container">')
.find('.container')
.append($('#' + elem).clone())
.find('div.col-xs-12.col-md-6.col-lg-4')
.removeClass('col-xs-12').removeClass('col-md-6').removeClass('col-lg-4').addClass('col-4')
.css('width', '31.7%')
.css('margin', '5px')
.css('height', '514px')
.css('float', 'left')
.css('position', 'relative')
.find('.fa-redo').hide();
window.frames['printFrame'].focus();
window.frames['printFrame'].print();
$("#printFrame").remove();
}
就像我上面提到的那样,我怀疑它与打开打印窗口时挂在“挂起”的js和css文件有关。
除了缺少许多自举样式外,显示工作原理(我第一次单击该按钮时)的一个细节是蓝色和灰色的字体。第一次单击后,它有时显示为黑色,有时根本不显示。
任何见解将不胜感激。
答案 0 :(得分:0)
可能是在加载所有内容之前进行打印。将您的打印操作放在iframe中,而不是在父页面中,然后将其包装在READY处理程序中。
class Hash():
def __init__(self, user):
self.max = user
self.table = {}
def isFull(self):
if len(self.table) == self.max:
return True
else:
return False
def insert(self,item):
if self.isFull():
print('Hash table is full')
else:
hashing = self.index(item)
if hashing not in self.table:
self.table[hashing] = item
else:
for a in self.table:
if self.table[a] == None:
self.table[a] = item
return self.table
def index(self,item):
hashval = int(item) % self.max
return hashval
def searching(self,item):
pass
user = int(input('Enter a number for the maximum number of items that can be stored in the hash table: '))
h = Hash(user)
h.insert(5)
h.insert(6)