window.print无法正常运行所有主流浏览器中的所有方法

时间:2013-10-18 12:19:52

标签: javascript

我正在尝试使用window.print打印一个页面,但它并不适用于所有浏览器。

这是我正在使用的代码:

<div class="user_buttons">
    <!--Test 1-->
    <A HREF="javascript:window.print()"><IMG SRC="images/print.png" BORDER="0"</A>

    <!--Test 2--> 
    <FORM>
        <INPUT TYPE="button" onClick="window.print()">
    </FORM>

    <!--Test 3-->
    <SCRIPT LANGUAGE="JavaScript"> 
    if (window.print) {
        document.write('<form><input type=button name=print value="Print" onClick="window.print()"></form>');
    }
    </script>

    <!--Test 4-->
    <img src="images/print.png" onclick="window.print()">
    <div><a href="overzicht.php"><img src="images/overzicht.png" title="Terug naar overzicht"></a></div> 
</div>

正如您所看到的,我正在尝试互联网提供的多种解决方案。令人沮丧的是,这些代码正在演示网站上运行,但它们不在我的页面上。我在JSF中发布我的代码。 JSF示例将不是一个工作示例,但它将在javascript区域中包含整个代码。整个代码的链接位于:http://jsfiddle.net/7bRNu/

2 个答案:

答案 0 :(得分:7)

我终于明白了。在一大堆代码中搜索错误是一个非常痛苦的过程。 下次您在stackoverflow上提出问题时,请确保将问题分解为较小的部分并仅发布您认为可能导致问题的代码。

在整个代码的最底部,有一个小脚本部分,其中包含:

var print = document.getElementById("print").value;

您处于全局范围内,这意味着您声明的每个变量都是window的属性。因此,通过撰写print =,您实际上重新定义了window.print。更改此变量的名称,你应该是好的。以下行仅是一个示例。您可以选择您喜欢的任何变量名称。不要使用print

var printValue = document.getElementById("print").value;

答案 1 :(得分:3)

这是一种孤立的方法:

http://jsfiddle.net/5PumN/

<A HREF="javascript:window.print()"><IMG SRC="images/print.png" BORDER="0"</A>

这里工作得很好。