Javascript window.print不工作在所有主要浏览器中尝试了所有方法

Javascript window.print不工作在所有主要浏览器中尝试了所有方法,javascript,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>

我正在尝试使用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区域中包含完整的代码。整个代码的链接在这里:

这里有一个方法:



它在这里工作得很好。

这里有一种方法:



它在这里很好用。

我终于找到了。在一大堆乱七八糟的代码中搜索错误是一个非常痛苦的过程下次您提出有关stackoverflow的问题时,请确保将问题分解成更小的部分,并只发布您认为可能是问题原因的代码。

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

var print = document.getElementById("print").value;
您处于全局范围内,这意味着您声明的每个变量都将是
窗口的属性。因此,通过编写
print=
实际上重新定义了
window.print
。更改此变量的名称,您应该会很好。下面这行只是一个例子。您可以选择任何您喜欢的变量名。只是不要使用
打印

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

我终于明白了。在一大堆乱七八糟的代码中搜索错误是一个非常痛苦的过程下次您提出有关stackoverflow的问题时,请确保将问题分解成更小的部分,并只发布您认为可能是问题原因的代码。

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

var print = document.getElementById("print").value;
您处于全局范围内,这意味着您声明的每个变量都将是
窗口的属性。因此,通过编写
print=
实际上重新定义了
window.print
。更改此变量的名称,您应该会很好。下面这行只是一个例子。您可以选择任何您喜欢的变量名。只是不要使用
打印

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


我相当肯定所有这些都会起作用。你如何确定它们“不起作用”?你的预期行为是什么?你检查了你的JSFIDLE吗?我要求你在发布链接之前检查一下。你的fiddle在Javascript框中有HTML。这行不通。@FritsvanCampen=当我在浏览器中加载网页并单击它们时,它不会给我打印屏幕。所以它不起作用。笑话10和Barmar我在问题中说,我把页面的全部代码放在javascript区域。是的,JSF不起作用,但是在stackoverflow中添加748行代码非常恼人,每行前面有4个空格。所以我把它放在JSF中,只有一次CTRL+V。但是谢谢你的评论。我把代码清理了一点,放在正确的框中,删除了所有PHP代码和不必要的东西,这些东西不属于这个文件。显示
窗口。打印
有效。我相当肯定所有这些都会起作用。你如何确定它们“不起作用”?你的预期行为是什么?你检查了你的JSFIDLE吗?我要求你在发布链接之前检查一下。你的fiddle在Javascript框中有HTML。这行不通。@FritsvanCampen=当我在浏览器中加载网页并单击它们时,它不会给我打印屏幕。所以它不起作用。笑话10和Barmar我在问题中说,我把页面的全部代码放在javascript区域。是的,JSF不起作用,但是在stackoverflow中添加748行代码非常恼人,每行前面有4个空格。所以我把它放在JSF中,只有一次CTRL+V。但是谢谢你的评论。我把代码清理了一点,放在正确的框中,删除了所有PHP代码和不必要的东西,这些东西不属于这个文件。显示
窗口。打印
有效。所有的方法都有效。我知道这一点。唯一的问题是他们没有在我的页面上工作。不知何故,当页面中除了userdiv之外的所有代码都被删除时。然后它就开始工作了。但是很明显,我不能删除所有这些代码,因为这样页面就毫无意义了。然后,根据您提供给我们的信息,我们无法解决您的问题。所有的方法都有效。我知道这一点。唯一的问题是他们没有在我的页面上工作。不知何故,当页面中除了userdiv之外的所有代码都被删除时。然后它就开始工作了。但是很明显,我不能删除所有这些代码,因为这样页面就毫无意义了。那么,根据您提供的信息,我们无法解决您的问题。我是删除整个脚本部分,还是将“print”重命名为“restringcode”@HennySmafter?正如我所说,您只需将变量
print
重命名为您喜欢的任何名称。可能是
printValue
之类的。只是不要使用
print
,因为它的意思与
窗口的意思相同。print
。我被变量弄糊涂了,你指的是
var print
,我以为你指的是
“print”
。我现在正在更改它,但我现在无法测试我的IP被阻止,因为我在过去一个小时内尝试了多次上载和刷新。我需要等待我的IP再次解锁。但是非常感谢您的帮助。我是删除整个脚本部分还是将“print”重命名为“restringcode”@HennySmafter正如我所说,您只需将变量
print
重命名为您喜欢的任何名称。可能是
printValue
之类的。只是不要使用
print
,因为它的意思与
窗口的意思相同。print
。我被变量弄糊涂了,你指的是
var print
,我以为你指的是
“print”
。我现在正在更改它,但我现在无法测试它,我的