如何打印指定的div(无需手动禁用页面上的所有其他内容)?
我想避免使用新的预览对话框,因此使用此内容创建新窗口无用.
该页面包含几个表格,其中一个表格包含我要打印的div - 该表格采用网页的视觉样式设计,不应该以打印方式显示.
我知道document.write被认为是不好的做法; 我希望编制一份提交给第三方供应商的理由清单,说明为什么他们不应该document.write在分析代码的实现中使用它们.
请在下面提供您声称document.write为不良做法的理由.
我有一个只有IE8问题的网站:
代码是:
var w = window.open(urlstring, wname, wfeatures, 'false');
Run Code Online (Sandbox Code Playgroud)
错误是:
消息:参数无效.
行:419字符:5
代码:0
URI:http://HOSTNAME/js_context.js
我已经确认了代码的行号("行"和"URI"是正确的),我理解在IE8的更高版本中,这被认为是准确的.
我通过转储警报检查了调用中的所有传入参数,它们看起来都是有效的.
这个问题不会发生在FF(可能是3)上.
更新:
问题似乎是在执行"var w"时使用window.open()的结果.当我将该行分成两个语句时,它在IE8中有效.
UPDATE2:
基于:
http://javascript.crockford.com/code.html
当要立即调用函数时,整个调用表达式应该包含在parens中,以便很明显生成的值是函数的结果而不是函数本身.
这不完全是这里发生的事情,但我发现在IE8的兼容模式下应用该原则解决了这个问题.
var w = (window.open(urlstring, wname, wfeatures, false));
Run Code Online (Sandbox Code Playgroud) 我在javascript中做这样的事情,点击链接打印我的页面的一部分
function printDiv() {
var divToPrint = document.getElementById('printArea');
var newWin = window.open();
newWin.document.write(divToPrint.innerHTML);
newWin.print();
newWin.close();
}
Run Code Online (Sandbox Code Playgroud)
它在Firefox中很好用,但在IE中却不行.
请有人帮忙
我想使用jQuery打印div的内容.这个问题已经在SO中提出,但我找不到正确的(有效的)答案.
这是我的HTML:
<div id='printarea'>
<p>This is a sample text for printing purpose.</p>
<input type='button' id='btn' value='Print'>
</div>
<p>Do not print.</p>
Run Code Online (Sandbox Code Playgroud)
在这里,我想打印div的内容printarea.
我试过这个:
$("#btn").click(function () {
$("#printarea").print();
});
Run Code Online (Sandbox Code Playgroud)
但是单击按钮时会出现控制台错误:
未捕获的TypeError:$(...).print不是函数
但是当我尝试使用打印整个页面时
window.print();
Run Code Online (Sandbox Code Playgroud)
这是工作.但我只想打印特定div的内容.我$("#printarea").print();在许多地方看到了答案,但这不起作用.
所以我试图复制适用于一个元素的所有样式(class/id/tagName/attribute等).到目前为止,我发现我可以复制元素的计算样式,只有一个问题... couldend将它应用于其他元素; /
或diffrend复制所有样式的方法.
(这是我得到的:/) http://jsfiddle.net/8KdJd/2/
//queriks mode + minor changes to retrive the computed style
function getCS(el)
{
if (el.currentStyle)
var y = el.currentStyle;
else if (window.getComputedStyle)
var y = document.defaultView.getComputedStyle(el,null);
return y;
}
function setCS(el,cs)
{
if (el.currentStyle)
{
el.currentStyle = cs;
el.style = cs;
}
else if (window.getComputedStyle)
{el.style = cs
}
}
var myLink = document.getElementById('myLink');
var anotherLink = document.getElementById('anotherLink');
var CS_myLink = getCS(myLink);
setCS(anotherLink,CS_myLink);
Run Code Online (Sandbox Code Playgroud) chrome扩展程序是否可以读取ctrl + p数据并将其另存为pdf或html,而不显示打印屏幕?
我正在寻找一种简单的方法来隐藏除了某个div及其内容之外的所有内容.
<html>
<head></head>
<body>
<div class="header">...</div>
<div class="menu">...</div>
<div class="content">...</div>
<div class="footer">...</div>
</body>.
</html>
Run Code Online (Sandbox Code Playgroud)
所以,例如,如果我只想打印div.content,我会这样做:
.header, .menu, .footer {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
如果布局复杂,它就会变得混乱.使用CSS有更简单的方法吗?
我有一个使用AngularJS的html页面,我想从中打印一个div.有角度的方式吗?..或者它只是下面的经典JavaScript方式:
<script language="javascript" type="text/javascript">
function printDiv(divID) {
//Get the HTML of div
var divElements = document.getElementById(divID).innerHTML;
//Get the HTML of whole page
var oldPage = document.body.innerHTML;
//Reset the page's HTML with div's HTML only
document.body.innerHTML =
"<html><head><title></title></head><body>" +
divElements + "</body>";
//Print Page
window.print();
//Restore orignal HTML
document.body.innerHTML = oldPage;
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果AngularJS没有任何相关内容,你能不提出使用JavaScript函数的建议吗(例如:doc.getElementById())..一种接近AngularJS方法的方法吗?
谢谢,
我正在使用html5网页我显示了一些产品列表,这个列表在div标签里面,这是用css设计的.我想打印产品列表获取css样式.
我需要单击按钮来捕获并显示特定div类或id的窗口.然后打印div类或id