1

有一个简单的函数我想写 jsfiddle,但我无法让任何 javascript 工作。在 FF 和 Chrome 中尝试了相同的结果。

在这里这里查看了 SO 帖子,但我无法让它工作。

代码:

<input type="button" value="5 Items" onclick="test()">
<input type="button" value="6 Items" onclick="arrayOfOandZ(6)">
<input type="button" value="7 Items" onclick="arrayOfOandZ(7)">


function test() {
    alert("TEST");
}

function arrayOfOandZ (size) {
    var arrayOFOnZ[size];
    //Fill array
    for(var x = 0; x < size; x++){
        arrayOfOnZ[x] = size % 2;
    }
    alert(arrayOFOnZ.join('\n'));
}

小提琴

4

2 回答 2

3

您的脚本(发布在 jsFiddle 链接上的脚本)包含以下错误:

  • 您正在使用未定义的$document值并尝试在其上调用函数 ( ready)。

  • 您有一行内容为:

    alert("TEST);
    
  • 您有一行内容为:

    var arrayOFOnZ[size];
    

此外,默认情况下,仅在加载 DOM 后才定义该函数。将左侧的下拉菜单从“onLoad”更改为“No wrap - in <head>”,以指示 jsFiddle 将脚本直接附加到<head>标签中,而不是window.onload函数中。

于 2013-03-21T23:26:00.270 回答
1

更新您的小提琴以使用no wrap - in <head>orno wrap in <body>或 jsFiddle 将默认情况下将脚本包装到window.onload. 这会导致元素首先呈现,并且在onclick呈现时脚本还不存在,因为它仅在加载窗口后才被添加,如下所示:

<html>

    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <title>- jsFiddle demo</title>
        <script type="text/javascript" src="/js/lib/dummy.js"></script>
        <link rel="stylesheet" type="text/css" href="/css/result-light.css">
        <style type="text/css">
</style>
        <script type="text/javascript">
            //<![CDATA[ 
            window.onload = function() {
                function test() {
                    alert("TEST");
                }

                function arrayOfOandZ(size) {
                    var arrayOFOnZ = new Array(size);
                    //Fill array
                    for (var x = 0; x < size; x++) {
                        arrayOfOnZ[x] = size % 2;
                    }
                    alert(arrayOFOnZ.join('\n'));
                }
            } //]]>
        </script>
    </head>

    <body>
        <input type="button" value="5 Items" onclick="test()">
        <input type="button" value="6 Items" onclick="arrayOfOandZ(6)">
        <input type="button" value="7 Items" onclick="arrayOfOandZ(7)">
    </body>

</html>

演示- 小提琴中的固定设置


no wrap in <head>例如,将脚本直接呈现到 中,head而无需window.onload包装器使其立即可用。因此,当元素被渲染时,脚本存在,如下所示:

<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>- jsFiddle demo</title>
    <script type="text/javascript" src="/js/lib/dummy.js"></script>
    <link rel="stylesheet" type="text/css" href="/css/result-light.css">
    <style type="text/css">
</style>
    <script type="text/javascript">
        //<![CDATA[ 

        function test() {
            alert("TEST");
        }

        function arrayOfOandZ(size) {
            var arrayOFOnZ = new Array(size);
            //Fill array
            for (var x = 0; x < size; x++) {
                arrayOfOnZ[x] = size % 2;
            }
            alert(arrayOFOnZ.join('\n'));
        }
        //]]>
    </script>
</head>
于 2013-03-21T23:36:58.153 回答