2012-12-23 33 views

回答

5

什麼你正在尋找被稱爲功能

function x() { 
    console.log('Alive!'); 
} 

如果x已經是一個字符串你可以使用eval(x)來執行它的代碼。 eval雖然是邪惡的。

10

你在找什麼是eval()。通過將字符串傳遞給此函數,您將評估字符串爲JavaScript代碼,並且它將返回字符串中代碼返回的任何返回值。

雖然使用此功能時請注意。您不想評估任何您不知道可以安全執行的代碼。例如,運行用戶生成的代碼可能會搞亂你正在做的任何事情。在網站上使用JavaScript時,這可能只會導致客戶端出現問題,因此可能不會帶來很大的安全威脅,因此在評估服務器端的代碼時,您會非常小心。

正如在其他文章中暗示的那樣,如果您要控制要運行的源代碼,您可能希望製作一個函數而不是一個評估字符串。

+0

感謝大家的回覆,這就是我一直在尋找的。現在的問題是Im執行使用document.write的腳本的內容並覆蓋整個網頁。我該如何解決這個問題,只需將元素附加到html文檔中,而不是完全覆蓋其他所有內容?這是一個完全不同的topi,但感謝您的幫助,關注我的問題! –

+0

是的,這確實是一個全新的話題,但這裏是對你的問題的一個快速解釋: 'document.write'將總是清除頁面,並在文檔完全加載後執行時創建一個新文件。因此,您需要使用'innerHTML'來代替。用'document.getElementById()'來獲取你想要編輯內容的元素,並執行'element.innerHTML =「output」'。 –

+0

@AndreasHagen:如果頁面上沒有DOM節點,那麼'document.writeln'只寫一行,而不清除整個頁面 –

10

eval()這會將字符串轉換爲javascript代碼。

eval("console.log('Alive!')";); 
相關問題