javascript - 仅在屏幕上运行 JS 功能(不打印)?

标签 javascript printing

我有一个包含长文本的 DIV,并使用一个函数将其 chop 。这一切都很好,直到有人打印该页面。 chop 的文本将不可读。

有什么办法可以预防吗?

我一直在寻找 CSS 媒体打印的等效项,但我能找到的所有内容都适用于屏幕宽度。我不知道哪个更好:仅在媒体屏幕上 chop 或删除“打印”上的 chop 。

// Truncate the job description
$(function() {
    if ( $('#jetsSearch').length ) {
        $('.job-description').readmore({
            speed: 100,
            collapsedHeight: 50,
            moreLink: '<a href="#">Read more</a>',
            lessLink: '<a href="#">Less</a>',
        });
    }
});

我试过这个,但它不起作用(仍然被 chop )

if ( $('#jetsSearch').length && window.matchMedia("screen").matches) {

最佳答案

看起来您正在使用 readmore.js jquery 插件。

这就是我处理完全相同问题的方式。 Readmore.js 使用 javascript 将高度的内联样式(以及其他)应用到您的容器。在 CSS 中覆盖这些内联样式的唯一方法是在声明中使用 !important 规则。

因此,通过将 height: auto; 添加到具有重要规则的 data-readmore 数据属性的元素,您可以为打印样式覆盖它(我使用为此在我的 CSS 中打印媒体查询)。我还隐藏了“阅读更多”链接,因为它与打印页面无关。

@media print {
    [data-readmore] {
        height: auto !important;
    }
    [data-readmore-toggle] {
        display: none !important;
    }
}

关于javascript - 仅在屏幕上运行 JS 功能(不打印)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893350/

相关文章:

objective-c - cocoa 获得默认纸张尺寸?

html - Bootstrap - 打印页面而不破坏卡片

Excel VBA 用户窗体打印屏幕另存为 pdf

javascript - 如何覆盖 addEventListener 中的函数?

javascript - V-modal 选择框中的变量

javascript - 这是如何被 Javascript 词法分析器解析的? (没有括号的闭包模式)

javascript - HTML移动按钮显示

java - PrintServiceLookup.lookupDefaultPrintService() 始终返回 null

windows - 如何使用 Windows Phone 7 连接蓝牙打印机?

javascript - 如何以编程方式清除 javascript 控制台?