我正在创建一个我使用过iframe的程序。我在iframe上应用css,它在浏览器上运行良好。但是当我尝试打印iframe时,css效果不会出现。我试图从IE,Chrome,Mozilia和Edge打印iframe。但它们都没有正确印刷。页面上仅显示一些效果。谁能告诉我解决方案?
谢谢:)
我的程序中有两个文件。我的代码如下:
createForm.php
<?php
$clmns=$_REQUEST['clmns'];
$rows=$_REQUEST['rows'];
$form="<center><table>";
for($i = 1; $i <= 2; $i++)
{
$form.="<tr>";
for($j = 1; $j <= $clmns; $j++)
{
$form.="<td><textarea style='background-color:rgb(249,208,191); color:brown; font-weight:bold; border:solid 3px brown;' id=".$i."_".$j." rows=".$rows." cols=20></textarea></td>";
}
$form.="</tr>";
}
$form.="</table></center>";
$form.="<input type=button value=Save onclick=saveData() />";
echo $form;
?>
home.php
<html>
<head>
<style type="text/css">
iframe
{
width:800px;
height:500px;
background-color: blue;
border:solid 5px brown;
}
</style>
<script type="text/javascript">
var xmlhttp;
function createForm()
{
var clmns=document.getElementById('clmns').value;
var rows=document.getElementById('rows').value;
document.getElementById('dataEntryForm').src="createForm.php?clmns="+clmns+"&rows="+rows;
}
function saveData()
{
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var v1=document.getElementById('1_1').value;
alert(v1);
xmlhttp.open("POST","saveData.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("data="+v1);
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
//document.getElementById('dataEntryForm').innerHTML=xmlhttp.responseText;
}
}
}
function printMe()
{
var x = document.getElementById("dataEntryForm");
var y = x.contentWindow.print();
}
</script>
</head>
<body>
<table>
<tr>
<td>Enter Number of Columns Required :</td>
<td><input type="text" id="clmns" /></td>
</tr>
<tr>
<td>Enter Number of Maximum rows Required :</td>
<td><input type="text" id="rows" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="Show Form" onclick="createForm()"/></td>
</tr>
</table>
<br/><br/>
<iframe name="frame1" id="dataEntryForm"></iframe>
<input type=button onclick="printMe()" />
</body>
</html>
答案 0 :(得分:0)
我有同样的问题N-C。我在很多网站上搜索了很多。经过很长一段时间,我发现在这种情况下,它是一个限制它的浏览器。您只需启用背景颜色打印选项。我曾与Mozilia Firefox合作过。在下面的步骤中打印背景颜色:
档案 - &gt;页面设置 - &gt; (选中选项)打印背景(颜色和图像)
您也可以在其他浏览器中找到类似的选项。