2011-02-02 48 views
1

我有興趣在CMS後端構建一個文本編輯器,允許用戶在編寫textarea時編寫Javascript並對其進行測試。從textarea內部執行Javascript(自定義JS控制檯)

我能想到的最接近的就是這樣的。但

.src='http://site.com/file.js'; 

代替

document.head.appendChild(document.createElement('script')).src='http://site.com/file.js'; 

我需要填充的文本域值的腳本元素。有沒有人有任何想法如何處理這樣的事情?

+0

您需要執行ajax請求以從服務器檢索js文件,並且回調會將內容轉儲到textarea中。 – Neil 2011-02-02 14:21:32

回答

2

我寫的這些我自己(不工作在IE)一個簡單的在這裏:http://phrogz.net/tmp/simplejs.html

+0

不錯的工作,你看到任何我無法將其轉換成jQuery的主要原因?也許使用jQuery語法可以跨瀏覽器兼容? – 2011-02-02 14:28:05

+0

不,沒有理由不應該跨瀏覽器。實際上,這是與實際評估無關的頁面部分會破壞IE。感謝這個問題,我現在有10年的動力來解決它與IE再次合作:) – Phrogz 2011-02-02 14:29:00

0

我想你應該做一個Ajax調用來加載頁面。我建議使用JQuery,這很容易,並且在他們的網站上有很多例子。

這將是這個樣子:

$.get('http://site.com/file.j', function(data) { 
    $('#txta').text(data); 
}); 

其中 'txta' 是textarea的ID。

如果你想在瀏覽器中執行腳本,你可以使用javascript eval()函數 - 但是我會非常小心地採用這種方法,因爲它會導致各種安全缺陷,包括跨站腳本攻擊。

2

使用eval()功能。

eval(document.getElementById('wmd-input').value); 

如果你打算讓用戶輸入的JavaScript到您的CMS,請確保你快速瞭解cross-site scripting (XSS)