国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue、js獲取頁面中所有css樣式(包括link標(biāo)簽)案例為打印使用

這篇具有很好參考價值的文章主要介紹了vue、js獲取頁面中所有css樣式(包括link標(biāo)簽)案例為打印使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近碰到一個需求:將彈窗中的表單打印出來,還要保留彈窗表單的樣式,為了對頁面造成的影響最小采取iframe方案。

獲取彈窗html內(nèi)容很好辦

const print = () => {
  const printBox = document.querySelector(".problem-wrapper");
  const iframe = document.createElement("iframe");
  iframe.style.display = 'none'
  iframe.name = "printIframe";
  document.body.appendChild(iframe);
  //將彈窗html代碼給iframe
  iframe.contentDocument!.body.innerHTML = printBox!.innerHTML;
  iframe.contentWindow?.print();
    setTimeout(() => {
      document.body.removeChild(iframe);
    }, 5000);
}

這個時候我們點擊打印按鈕調(diào)用上面的方法,會發(fā)現(xiàn)表單缺少樣式,怎么拿到缺少的css樣式呢,代碼如下

const stylesText = Array.from(document.styleSheets)
    .map((s) =>
      Array.from(s.cssRules)
        .map((z) => z.cssText || "")
        .join("\n")
    )
    .join("\n");

將代碼加入方法print方法中
最終方法成品:

const print = () => {
  const stylesText = Array.from(document.styleSheets)
    .map((s) =>
      Array.from(s.cssRules)
        .map((z) => z.cssText || "")
        .join("\n")
    )
    .join("\n");
    //需要打印的容器的類名
  const printBox = document.querySelector(".problem-wrapper");
  const iframe = document.createElement("iframe");
  iframe.style.display = "none";
  iframe.name = "printIframe";
  document.body.appendChild(iframe);
  iframe.contentDocument!.head.innerHTML = `<style>${stylesText}</style>`;
  iframe.contentDocument!.body.innerHTML = printBox!.innerHTML;
 iframe.contentWindow?.print();
    setTimeout(() => {
      document.body.removeChild(iframe);
    }, 5000);
};

補充:如果有哪些不需要打印的部分可以在上加上一個類名,并且在css部分寫一一個媒體查詢。
vue中演示:
標(biāo)簽:<div class="noPrint">不需要打印的部分</div>
樣式:<style> @media print {.noPrint {display: none;}}</style>文章來源地址http://www.zghlxwxcb.cn/news/detail-698165.html

到了這里,關(guān)于vue、js獲取頁面中所有css樣式(包括link標(biāo)簽)案例為打印使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包