为什么Chrome浏览器中的body onload事件不起作用

3

我遇到了一个问题,我的 body onload="constructor()" 没有运行。在 Firefox 中它可以正常工作,但我不明白为什么在 Chrome 中它不能正常工作。这是我正在使用的代码,我创建了一个单独的文件并删除了所有内容,以尝试找出问题所在:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8" />
    <title>Personality Font</title>
    <link rel="stylesheet" type="text/css" href="p1.css" />
    <script type="text/javascript" src="data.js"></script>
    <script type="text/javascript">
    //<![CDATA[


        function constructor(which)
        {
            console.log("IN CONSTRUCTOR"); //In Constructor
            var text = document.createElement('p');
            text.appendChild(document.createTextNode("BLAH"));
            document.getElementsByTagName('body')[0].appendChild(text);

        }

    //]]>
    </script>
</head>

<body onload = "constructor();">
    <h1>Personal Fonts: Find the Typeface that Matches Your Personality</h1>
    <form>

    </form>


</body>
</html>

@barit 在调用中的参数在哪里? - SaidbakR
@sємsєм 它无论如何也不会被使用。 - John Dvorak
@sємsєм,目前代码的写法没有传入任何参数,但是多亏了下面Quentin的帮助,我意识到我的问题在于调用函数构造器。 - barit
@barit 我根本没有对这个问题投反对票!相反,我投了赞成票! - SaidbakR
1个回答

8
Chrome浏览器内置了一个名为constructor的函数。将该函数命名为其他名称。

1
之前不知道这个!他们至少可以让Chrome弹出警告,而不是默默失败。 - David Müller
啊,非常感谢!这个完美地解决了我的问题,我之前完全不知道。 - barit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接