1

printarea()jQuery関数を使用して、Web ページの特定の領域を印刷しようとしています。動作せず、エラーが返されます。tolowerCase is undefined Errorのようなエラーが表示されます

return (media.toLowerCase() == "" || media.toLowerCase() == "print")

jQuery

function printDiv() {
    $('#dvTokenArea').printArea();
}​

<div id="dvTokenArea" runat="server">
     <asp:Label ID="lblTokenNumber" runat="server" Text="Print ME !!!!!!!!!!!!">    </asp:Label>
</div>
<asp:Button ID="btnPrintToken" runat="server" Text="Print"
     OnClientClick="javascript:printDiv();" />​
4

2 に答える 2

2

Pencho Ilchev が言及したように、これは .attr() の jQuery 1.6 BC の中断が原因です。以下は、PrintArea プラグインの固定フォークです。

https://github.com/djozsef/jquery.printarea.js

于 2012-08-28T11:22:38.737 に答える
1

これは、エラーを返すプラグインのコードです。

$(document).find("link")
            .filter(function(){
                    return $(this).attr("rel").toLowerCase() == "stylesheet";
                })
            .filter(function(){ // this filter contributed by "mindinquiring"
                    var media = $(this).attr("media");
                    return (media.toLowerCase() == "" || media.toLowerCase() == "print")
                })
            .each(function(){
                    head += '<link type="text/css" rel="stylesheet" href="' + $(this).attr("href") + '" >';
                });

確かに十分な情報を提供していませんがmedialink要素に属性がなく、属性が設定されていない場合に返されるJQuery 1.6以上を使用していると思いますundefined

attr ドキュメントから:

jQuery 1.6 以降、.attr() メソッドは、設定されていない属性に対して undefined を返します。

したがって、属性がmediaに設定されてlinkいる要素にrel属性が設定されていない場合stylesheettoLowerCase()は であるメディアで呼び出されますundefined

于 2012-06-30T09:05:16.923 に答える