2008-11-07 79 views
6

我想仅打印从网站页面的textarea元素的内容。特别是,我想确保没有任何东西被文字区边界限制,因为内容会很大。仅打印文本区

解决这个问题的最佳策略是什么?

回答

6

制作一个打印样式表,其中所有元素除了 textarea都设置在CSS中以显示:none;并且对于textarea,overflow:visible。

将其链接到链接标记设置为media =“print”的页面。

你完成了。

+1

这实际上并不奏效,你试过了吗?在Chrome 8中,textarea上的“overflow:visible”实际上并不打印其内容。 “height:auto”也不是。或我惯常的伎俩。 – 2011-01-06 02:05:20

2

如果用户点击“打印”,你可以打开一个新的窗口,只是一个空白页上textarea的内容并从那里开始打印,然后关闭该窗口。

更新:我认为提出的CSS解决方案可能是更好的策略,但如果有人喜欢这个建议,他们仍然可以使它胜利。

1

我会去其他建议的组合。

不要使用样式表覆盖来终止整个页面的打印按钮,而是通过textarea提供一个按钮,让用户只打印这些内容。

该按钮会打开一个新窗口,菜单/铬等,只克隆textarea的内容(或提供打印css文件)

1

我做了一个打印介质CSS来隐藏一些字段。这个问题很复杂,因为我使用nicEdit动态创建一个IFRAME。所以我不得不添加一个事件来处理onblur事件,并将它们复制到一个隐藏的(除了打印)div上。 “divtext”是hiddent Div,而“storyText”是TextArea。

textarea { 
    display: none; 
} 

*/ #divtext { 
    display: block; 
} 

div, DIV { 
    border-style: none !important; 
    float: none !important; 
    overflow: visible !important; 
    display: inline !important; 
} 

/* disable nearly all styles -- especially the nicedit ones! */ 

#nav-wrapper, #navigation, img, p.message, .about, label, input, button, #nav-right, #nav-left, .template, #header, .nicEdit-pane, .nicEdit-selected, .nicEdit-panelContain, .nicEdit-panel, .nicEdit-frame { 
    display: none !important; 
} 

/*hide Nicedit buttons */ 

.nicEdit-button-active, .nicEdit-button-hover, .nicEdit-buttonContain, .nicEdit-button, .nicEdit-buttonEnabled, .nicEdit-selectContain, .nicEdit-selectControl, .nicEdit-selectTxt { 
    display: none !important; 
} 

为nicEdit JavaScript代码:

<script type="text/javascript" src="/media/nicEdit.js"></script> 
<script type="text/javascript"> 
    bkLib.onDomLoaded(function() { 
    var nic = new nicEditor({ 
     fullPanel: true 
    }).panelInstance('storyText'); 

    document.getElementById("storyText").nic = nic; 
    nic.addEvent('blur', function() { 
     document.getElementById("storyText").value = 
     nic.instanceById('storyText').getContent(); 
     document.getElementById("divtext").innerHTML = nic.instanceById('storyText').getContent(); 
    }); 
    }); 
</script> 
0

做了溢出:可见;在textarea实际上为你们任何人工作? FF3似乎忽略了印刷单上的textarea规则。并不是说它是一个bug或任何东西。