【问题标题】:jquery print plugin load everytime when I made click每次点击时都会加载jquery打印插件
【发布时间】:2012-06-12 13:15:58
【问题描述】:

我正在使用jquery Print Plugin

    $(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>

第一次打开页面,按yes,一次打印,第二次打开页面,按yes,一次打印2页,第三次打印3页单击。

这意味着每次点击,jquery print plugin 库会一次又一次地加载。 我们该如何控制呢?

【问题讨论】:

  • 你应该学习使用 CSS 的 media=print 来为打印机保留特殊的样式表。并在该样式表中保留 display:none 的页眉/页脚等。请参阅 webdesign.about.com/cs/css/a/aa042103a.htmstackoverflow.com/q/401623/946170
  • x2 到 imdad 所说的那样,这样你就不需要另一个 jq 插件来做到这一点。
  • 这是一个旧插件,依赖于旧 jQuery 版本并使用旧 API(例如 live)。我会说,摆脱它,并按照@Imdad 的建议使用打印样式。

标签: jquery html jquery-plugins plugins


【解决方案1】:

没有问题,在你身边。按以下方式编辑 jquery 插件库。

添加以下内容

this.die();

在下面的语句之后

$.extend(pluginOptions, options);

这会很好用!

【讨论】:

    【解决方案2】:

    插件没有问题,因为它使用live你需要将它添加到你的页面代码中,而不是在ajax调用中。

    当然,也许我(我是作者)不应该为此使用事件委托,这是当时项目的要求,我可能会更改它,以便它使用 on() 将自身绑定到 dom。

    至于其他 cmets,你们没有抓住重点。该插件用于 webapps 中的打印按钮,例如,您可以直接打印特殊的数据网格。它在 iframe 中加载 url 并打印它,所以你显然需要你的打印 css。

    【讨论】:

    • LOL...亲爱的,我没有在答案中说明插件有问题。我刚刚要求在其中插入一条线。正如你所说.......,不是在ajax调用中。我知道这在有限的范围内工作得很好。如果你更新你的插件,当你要求你现在改变它,那么它的范围将会增加。它应该支持ajax调用和不点击自动打印,因为此时我们只能使用触发器进行自动打印等。第三件事还支持打印机的自动页面大小。
    • 刚刚下载了您的打印插件。它是否处理跨页面的元素。我有一个需要保持在一起的 div。所以我不想一半在一页上,一半在另一页上。这可能吗?
    【解决方案3】:

    不太确定要打印什么,exception.jsp 或 pages/report.html。可能发生的情况是您定义了太多参数。

    通过检查插件,在我看来,您只需将&lt;a&gt; 中的href 设置为您要打印的页面的url,就是这样,其他参数只是让您指定href 以外的其他参数(它默认使用)。所以尝试从 jquery 调用中删除urlattr,并将&lt;a&gt; 中的href 更改为'pages/report.html'(如果这是您要打印的页面)。不确定 exception.jsp 应该做什么。

    【讨论】:

    • 亲爱的,如果 url: "pages/report.html" 不可访问,那么 exception.jsp 页面调用。请参考上面提到的jquery pluhin
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多