摘要:第一次寫打印,只知道,可是直接出來的是當(dāng)前頁面的所有內(nèi)容,而我要做的是打印當(dāng)前模態(tài)框里展示的內(nèi)容。怎么辦,接著搜唄。
第一次寫打印,只知道window.print(),可是直接出來的是當(dāng)前頁面的所有內(nèi)容,而我要做的是打印當(dāng)前模態(tài)框里展示的內(nèi)容。
網(wǎng)上搜了一下,都是指定具體的div,然后獲取該div里的內(nèi)容賦值給window.document.body.innerHTML
var bodyHtml = window.document.body.innerHTML; window.document.body.innerHTML = html;//html為當(dāng)前顯示的div的內(nèi)容 window.print(); window.document.body.innerHTML = bodyHtml;
但是這個(gè)就導(dǎo)致了一個(gè)問題,如果是打印的內(nèi)容這樣的,可以直接獲取打印,但如果是賦值到input標(biāo)簽里的,根本就獲取不到值啊。
怎么辦,接著搜唄。
找到兩種方法,第一種,也是比較原始的:將表單中的數(shù)據(jù)進(jìn)行綁定,獲取過來重新賦值給對應(yīng)的input中;
//打印模態(tài)框問卷內(nèi)容 $(".myform").on("click", "a[name="printInfo"]", function () { $("#listModal").modal("hide");//關(guān)閉模態(tài)框 $("#quesInfoModal").modal("hide"); var weI = this.id; onprint(weI); }); }); //打印指定區(qū)域 function printHtml(html) { var bodyHtml = window.document.body.innerHTML; window.document.body.innerHTML = html; window.print(); window.document.body.innerHTML = bodyHtml; //上面關(guān)于bodyHtml賦值的兩項(xiàng)操作可以忽略,因?yàn)橐P(guān)閉模態(tài)框并且刷新頁面 //這個(gè)地方必須要刷新一下頁面,打印重新賦值之后,模態(tài)框里的功能都不能正常使用, 包括父頁面列表中的功能也失效,這個(gè)問題不是很明白,有知道的可以幫忙解決一下 refreshFrame();//刷新頁面 } function onprint(weI) { if (weI == "wenjuanI") {//調(diào)查問卷詳情 bindData("#quesInfoModal"); var html = $("#quesInfoModal").html(); } else { bindData("#listModal"); var html = $("#listModal").html(); } printHtml(html); } //將表單中手動填寫的數(shù)據(jù)進(jìn)行綁定,便于html()的時(shí)候獲取到 function bindData(modalID) { //type=text,type=number, 同時(shí)如果checkbox,radio,select>option的值有變化, 也綁定一下 $(modalID + " input[type="text"]").each(function () { $(this).attr("value", $(this).val()); }); $(modalID + " input[type="number"]").each(function () { $(this).attr("value", $(this).val()); }); $(modalID + " input,select option").each(function(){ $(this).attr("value",$(this).val()); }); //type=checkbox,type=radio 選中狀態(tài) $(modalID + " input[type="radio"]").each(function () { if ($(this).attr("placeholder")) {//$(this).attr("checked") $(this).attr("checked", true); } else { $(this).removeAttr("checked"); } }); $(modalID + " input[type="checkbox"]").each(function () { if ($(this).attr("placeholder")) {//$(this).attr("checked") $(this).attr("checked", true); } else { $(this).removeAttr("checked"); } }); //$(".modal-backdrop").each(function () {//關(guān)閉模態(tài)框的遮罩層 // $(this).removeClass("in"); //}); }
注意:這種方法,必須要刷新一下頁面,打印重新賦值之后,模態(tài)框里的功能都不能正常使用,包括父頁面列表中的功能也失效,(相當(dāng)于頁面變成了一個(gè)純靜態(tài)頁面,沒有js了)這個(gè)問題不是很明白,有知道的可以幫忙解決一下啦
第二種方法,我看網(wǎng)上有說用jqprint插件的(http://www.jq22.com/jquery-in...),這個(gè)我也沒有詳細(xì)的看,只是稍微試了一下,也是不能獲取到input的值,而且隱藏的div也一并給顯示出來的了,效果不好,有會的可以指教一下啊。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92270.html
摘要:作用域作用域是指程序源代碼中定義變量的區(qū)域。采用詞法作用域,也就是靜態(tài)作用域。而與詞法作用域相對的是動態(tài)作用域,函數(shù)的作用域是在函數(shù)調(diào)用的時(shí)候才決定的。前面我們已經(jīng)說了,采用的是靜態(tài)作用域,所以這個(gè)例子的結(jié)果是。 JavaScript深入系列的第二篇,JavaScript采用詞法作用域,什么語言采用了動態(tài)作用域?兩者的區(qū)別又是什么?還有一個(gè)略難的思考題,快來看看吧。 作用域 作用域是指...
摘要:是典型的詞法作用域的語言,即一個(gè)符號參照到語境中符號名字出現(xiàn)的地方,局部變量缺省有著詞法作用域。沒有任何自己的局部變量,然而它可以訪問到外部函數(shù)的變量,即可以使用父函數(shù)中聲明的變量。通常,函數(shù)中的局部變量僅在函數(shù)的執(zhí)行期間可用。 本文從屬于筆者的JavaScript 入門與最佳實(shí)踐系列文章,同時(shí),本部分內(nèi)容也歸納于筆者的我的校招準(zhǔn)備之路:從Web前端到服務(wù)端應(yīng)用架構(gòu)這篇綜述。 大部分...
摘要:返回相加的和永遠(yuǎn)也不會執(zhí)行函數(shù)參數(shù)聲明函數(shù)時(shí)沒有給參數(shù),但調(diào)用函數(shù)時(shí)會傳參。當(dāng)網(wǎng)頁在全局作用域中調(diào)用函數(shù)時(shí),這個(gè)對象引用的就是。 函數(shù) 通過函數(shù)可以封裝任意多條語句,可以在任何地方,任何時(shí)候調(diào)用執(zhí)行。每個(gè)函數(shù)都是function類型的實(shí)例,和其他引用類型一樣具有屬性和方法。把函數(shù)保存為對象中的一個(gè)屬性時(shí),該屬性稱之為方法。 函數(shù)聲明語法方式 普通聲明方式 function sum ()...
摘要:在中的應(yīng)用采用詞法作用域,也就是靜態(tài)作用域。那什么又是詞法作用域或者靜態(tài)作用域呢請繼續(xù)往下看靜態(tài)作用域與動態(tài)作用域因?yàn)椴捎玫氖窃~法作用域函數(shù)的作用域在函數(shù)定義的時(shí)候就決定了。 開篇 當(dāng)我們在開始學(xué)習(xí)任何一門語言的時(shí)候,都會接觸到變量的概念,變量的出現(xiàn)其實(shí)是為了解決一個(gè)問題,為的是存儲某些值,進(jìn)而,存儲某些值的目的是為了在之后對這個(gè)值進(jìn)行訪問或者修改,正是這種存儲和訪問變量的能力將狀態(tài)給...
摘要:元組是靜態(tài)數(shù)組,它們不可變,且其內(nèi)部數(shù)據(jù)一旦創(chuàng)建便無法改變。元組緩存于運(yùn)行時(shí)環(huán)境,這意味著我們每次使用元組時(shí)無須訪問內(nèi)核去分配內(nèi)存。 以下是整理的JavaScript和python的基礎(chǔ)區(qū)別的整理: 字符串、列表、元組、字典、集合、函數(shù) 字符串 聲明一個(gè)字符串 python str = 123 str = 123 Tips: 如果是三個(gè)引號的話,那么在py中就是注釋的意思 ...
閱讀 2737·2023-04-26 02:28
閱讀 2571·2021-09-27 13:36
閱讀 3141·2021-09-03 10:29
閱讀 2775·2021-08-26 14:14
閱讀 2115·2019-08-30 15:56
閱讀 847·2019-08-29 13:46
閱讀 2621·2019-08-29 13:15
閱讀 467·2019-08-29 11:29