我负责构建指向数据库的 HTML 表单链接的任务。这里没有问题。
问题是我需要用户能够打印该表格。因此,我使用 HTML 按钮构建了一个“打印按钮”,并在其后面放置了一些 JQuery,以便表单的格式正确(删除一些边框、背景图像等)并window.print()
用于打印我的表单。
这是问题所在:
我的表格有 6 到 7 页长。
但预计它在 Google Chrome 上打印良好(所有部分都在单独的页面上)但在 IE(最新版本)中,某些字段和某些部分在某些页面上被“切成两半”。
我认为问题在于 IE 如何使用边距和填充。
我还检查了我可以在 Google 上传递给的任何参数,window.print()
认为它可能会有所帮助,但没有找到任何东西。
有人可以提供我可以使用的另一种方式或其他功能,以便我的表单在打印时在两个浏览器上看起来都一样吗?或者也许有人可以指出如果我犯了错误。
这是我的代码:
HTML:
<div id="divCodeSecurite">
<h3 class="Titre">Codes de sécurité des ascenseurs</h3>
<span class="SHL MixteLeft" id="CodeSecuriteLeft">
<input type="radio" id="B442007" name="CodeSecurite" value="B44-2007"/>
<label for="B442007">B44-2007</label>
<input type="radio" id="B442010" name="CodeSecurite" value="B44-2010"/>
<label for="B442010">B44-2010</label>
<input type="radio" id="ASME1712007" name="CodeSecurite" value="ASME 17.1-2007"/>
<label for="ASME1712007">ASME 17.1-2007</label>
<input type="radio" id="ASME1712010" name="CodeSecurite" value="ASME 17.1-2010"/>
<label for="ASME1712010">ASME 17.1-2010</label>
</span>
<span class="SHR MixteRight" id="CodeSecuriteRight">
<label for="CodeSecuriteAutre" class="SHLabel">Autre:</label>
<input type="text" id="CodeSecuriteAutre" name="CodeSecuriteAutre"/>
</span>
</br></br>
<span class="SHL">
<label for="VilleInstallation">Ville d'installation:</label>
<input type="text" id="VilleInstallation" name="VilleInstallation"/>
</span>
</div>
</br>
<div id="divTypeControl">
<h3 class="Titre">Type de contôle</h3>
<span class="SHL">
<label class="SHLabel">Modèle:</label>
<input type="radio" id="JHD1000" name="JHD1000" value="JHD-1000"/>
<label for="JHD1000">JHD-1000 (Avec automate)</label>
</span>
<span class="SHR">
<input type="radio" id="JHD2000" name="JHD2000" value="JHD-2000"/>
<label for="JHD2000">JHD-2000 (Carte de communication Canbus)</label>
</span>
</div>
<div class="Spacers divspacer" style="height:440px;"></div>
注意:我只放了我的代码示例。我有好几次这样的长度。这<div class="Spacers divspacer" style="height:440px;"></div>
就是我曾经尝试将所有内容都<div id="">
放在一页上的方法。
CSS:
<style rel="stylesheet" type="text/css">
.Border
{
border: black solid 2px;
}
.Titre
{
text-align:center;
background-color:black;
color:white;
border: solid black 2px;
}
.Spacers
{
display:none;
}
</style>
注意:如果我删除了需要的内容,我删除了问题不直接需要的代码,请说我将编辑并添加缺少的代码。
仅供参考:不要寻找.divspacer
. 它不存在,仅在我的 JQuery 中使用(见下文)。
查询:
function ImprimerForm()
{
$("#divBgd").removeClass('Border');//This remove the border
$("#divValidationEnvois").css('display', 'none');//This hide all the button so they dont print
$(".divspacer").removeClass('Spacers');//Make spacers visible
window.print();//Print form
$("#divBgd").addClass('Border');//Put everything back has it was!!
$("#divValidationEnvois").css('display', 'block');
$(".divspacer").addClass('Spacers');
}
所以要清楚:
问题:我无法让 IE 和 Chrome 以相同的方式打印我的表单。有些字段被切成两半,有些<div>
则在两个不同的页面上。
寻找:一种让他们在两个浏览器上以相同的方式打印我的表单的方法,或者布局出错。
我已经做了什么:寻找参数并window.print()
尝试添加一些 SPACERS(参见上面的代码)。
谢谢大家的帮助!