我正在使用jquery打印插件
$(document).ready(function() {
$(".printButton").printPage({
url: "pages/report.html",
attr: "href",
message:"Your document is being generated"
});
});
带有上述脚本的 Jsp 页面
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script>
$(document).ready(function() {
$(".printButton").printPage({
url: "pages/report.html",
attr: "href",
message:"Your document is being generated"
});
});
</script>
</head>
<body>
<h1>Press Yes to Print </h1>
<p><a class="printButton" href='exception.jsp'>Yes</a></p>
</body>
</html>
第一次打开页面并按是时,它会打印一次,当我第二次打开页面时,按是时,单击一下即可打印 2 页,第三次单击即可打印三页。
它意味着每次点击,jquery打印插件库一次又一次地加载。我们如何控制这种情况?
没有问题,在你这边。按以下方式编辑 jquery 插件库。
添加以下内容
this.die();
在以下语句之后
$.extend(pluginOptions, options);
这将正常工作!
该插件没有问题,因为它使用 live,因此您需要将其添加到页面代码中,而不是在 ajax 调用中。
当然,也许我(我是作者)不应该为此使用事件委托,这是当时项目的要求,我可能会更改它,以便它将自己绑定到 on() 的 dom。
至于其他评论,你们没有抓住重点。此插件用于打印按钮上的 Web 应用程序中,因此您可以直接打印特殊的数据网格。它将URL加载到iframe中并打印出来,所以你显然需要你的打印CSS。
要打印什么,异常.jsp或 pages/report.html。 可能发生的情况是你定义了太多的参数。
通过检查插件,在我看来,您只需要将<a>
中的 href 设置为您要打印的页面的 url,仅此而已,其他参数只是让您指定 href 以外的内容(默认情况下它使用)。因此,请尝试从 jquery 调用中删除url
和attr
,并将<a>
中的 href 更改为"pages/report.html"(如果这是您要打印的页面)。 不知道.jsp应该做什么例外。