2014-03-19 80 views
1

我有一個頁面接受文本區域中的Javascript代碼。我想在用戶按下運行按鈕時運行該代碼。從文本區域執行代碼

是以下幾種可能:

var programFunction = new Function(document.getElementById('program').value); 

<button type="button" onclick="programFunction">run</button> 

比方說textarea的程序中有以下內容:

document.getElementById('program').value = 'Tested'; 

當我嘗試這個測試我自己,我沒有得到任何錯誤,但我也沒有得到任何輸出。

+0

'的onclick = 「programFunction()」 的作品'只要'programFunction'是全球性的。你在'onclick'屬性中忘了'()'。 –

+0

[從textarea執行javascript]可能的重複(http://stackoverflow.com/questions/13243563/execute-javascript-from-textarea) –

回答

4

你需要你的「運行」按鈕來處理和運行代碼。

簡單地說,它只是:

onclick="eval(document.getElementById('program').value);" 

注意,在這種情況下,eval提供該程序字段的值只能來自用戶自己輸入的,而不是任何人都完全沒有問題別人的。

+0

啊,對了,我忘了所有關於eval。乾杯! –

2

有幾件事錯在你的代碼:

  • 好像你嘗試之前,它有一個值來訪問textarea的內容。
  • 您不運行您創建的功能。

您必須在按下按鈕時檢索texarea的值,而不是之前。使用Function儘管如此,它看起來像:

<script> 
function runCode() { 
    var source = document.getElementById('program').value; 
    var func = new Function(source); 
    func(); 
} 
</script> 
<button type="button" onclick="runCode()">run</button>