2013-03-21 34 views
1

有一個簡單的函數我想寫jsfiddle,但我無法獲得任何JavaScript的工作。在FF和Chrome中試用了相同的結果。JSFiddler不讀取javascript

看着SO的帖子herehere但我無法得到它的工作。

代碼:

<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')); 
} 

fiddle

+0

這是因爲寫在JavaScript的面板JavaScript是不能訪問到在線事件處理程序('onclick','onmouseover'等),大概是按設計。如果您使用不顯眼的JavaScript(所以事件處理在JavaScript面板中定義,以及這些處理程序調用的函數),那麼它可以正常工作。 – 2013-03-21 23:22:52

+0

@DavidThomas:或者,如果更改左側的下拉菜單 – SLaks 2013-03-21 23:24:59

+0

'未捕獲的SyntaxError:意外的標記ILLEGAL'。我錯誤地投票決定將問題視爲重複,但它確實應該被封閉爲*太局部*。 – 2013-03-21 23:27:21

回答

3

您的腳本(一張貼在的jsfiddle鏈接)包含以下錯誤:

  • 您使用的是未定義$document值,試圖調用一個函數(ready)就可以了。

  • 你有這樣一行:

    alert("TEST); 
    
  • 你有這樣一行:

    var arrayOFOnZ[size]; 
    

此外,該功能僅獲取DOM被加載後定義,默認。將左側下拉列表從「onLoad」更改爲「No wrap - in <head>」,以指示jsFiddle直接在<head>標記中追加腳本,而不是在window.onload函數中。

+0

啊,錯誤的小提琴張貼。我有一個沒有這個錯誤,看到相同的東西(編輯問題) – 2013-03-21 23:30:14

+0

@PepperedLemons,在新的小提琴中,你仍然有我提到的最後一個語法錯誤。 – rid 2013-03-21 23:30:54

+0

還沒有。試圖讓小提琴變得簡單。只是一個警告http://jsfiddle.net/sfJLx/9/ – 2013-03-21 23:35:22

1

更新你的小提琴使用no wrap - in <head>no 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> 

DEMO - 在小提琴

固定設置

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>