我正在尝试使用jQuery printarea()
功能在我的网页上打印特定区域。它不起作用并返回错误。
它显示错误,如tolowerCase未定义
错误的
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();" />
答案 0 :(得分:2)
正如Pencho Ilchev所说,这是由jQuery 1.6 BC中断.attr()引起的。这是PrintArea插件的固定分支:
答案 1 :(得分: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") + '" >';
});
您没有提供足够的信息以确定,但我相信您的media
元素没有link
属性,并且您正在使用JQuery 1.6或更高版本,如果返回undefined
,则返回media
该属性未设置。
从jQuery 1.6开始,.attr()方法为属性返回undefined 没有设定。
因此,如果您的link
元素的rel
元素未设置为stylesheet
属性设置为toLowerCase()
,则会在媒体上调用undefined
这是{{1}}。