2017-05-31 60 views
1

我目前正在尝试在我的网站上打印一个按钮。 一旦打印按钮被点击,它应该采取textarea的内容,并在about:blank中打开它。是否可以在about:blank中打开textarea的内容?

<textarea id="icontent" placeholder="Enter your content here." name="mas" rows="15" class="content"> 
</textarea> 

<a id="wprint" class="btn">Print</a> 

是否有可能只用前端做到这一点。

+1

你只是想约空白,因为你要里面的信息打印页面的特定部分? – Adjit

+0

将其保存并表示为单独的页面。或者你可以使用iframe – FieryCat

+0

@Adjit我希望about:blank在一个新标签页中打开,并** **仅将内容呈现为textarea。举例。然后关于:空白将只显示“你好” – Mile

回答

4

你可以做这样的事情。的onclick =“openBlank()”添加到您的打印按钮:

<textarea id="icontent" placeholder="Enter your content here." name="mas" rows="15" class="content"> 
</textarea> 

<a id="wprint" class="btn" onclick="openBlank()">Print</a> 

添加功能,以打印文本区域的文本到一个空白页:

function openBlank() 
{ 
    var text = document.getElementById("icontent").value; 
    var myWindow = window.open(''); 
    myWindow.document.write(text); 
} 
+0

小错误:对于一个textarea,你希望'.value'不是'.innerHTML' –

+0

是的,你是对的!我纠正了答案。谢谢丹尼尔! –

1

时,你有没有拦截试试这个

<script> 
     output = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore, inventore?' 
     window.open().document.write(output) 
</script> 
1

document.write的替代方法是使用数据URI。顺便提一句,这也是呈现非HTML内容的唯一方式(通过将data:text/html,更改为例如data:text/plain,)。

以下代码段不会因为堆栈溢出的内容安全设置的工作,但你可以看到它在行动上的jsfiddle:https://jsfiddle.net/4jkn0o6r/2/

const button = document.getElementById('wprint'); 
 
const textarea = document.getElementById('icontent'); 
 

 
button.addEventListener('click', evt => { 
 
    const data = encodeURIComponent(textarea.value); 
 
    const doc = 'data:text/html,' + data; 
 
    window.open(doc, '_blank'); 
 
});
<textarea id="icontent"> 
 
<h1>Hello</h1> 
 
</textarea> 
 

 
<a id="wprint">Print</a>

0

我建议打印文本区域到div,然后打印该特定的div。与StackOverflow显示您的文本框预览类似。或者,如果您不希望用户看到该信息,则可以隐藏其中包含文本框信息的div。然后您可以轻松打开一个新窗口来打印该特定信息。

var prtContent = document.getElementById("your div id"); 
var WinPrint = window.open('', '', 'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0'); 
WinPrint.document.write(prtContent.innerHTML); 
WinPrint.document.close(); 
WinPrint.focus(); 
WinPrint.print(); 
WinPrint.close(); 

我不相信这种代码可与打印的文本框,这就是为什么我建议您打印文本框输入到div

相关问题