2011-02-02 8 views
1

私は、テキストエリアにJavascriptを書き込んで編集中にテストできるテキストエディタをCMSバックエンドに構築することに興味があります。テキストエリア内からJavascriptを実行する(カスタムJSコンソール)

私が考えることのできる最も近いものは、次のようなものです。

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

しかし、その代わりの

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

私は、テキストエリアの値でscript要素を埋めるために必要があるでしょう。誰かがこれのようなものをどう扱うかという考えはありますか?

+0

jsファイルをサーバーから取得するためにajaxリクエストを実行する必要があり、コールバックはコンテンツをテキストエリアにダンプします。 – Neil

答えて

2

私はここで自分が(IEでは動作しません)これらの単純なものを書かれている:http://phrogz.net/tmp/simplejs.html

+0

jQueryに変換できないという大きな理由がありますか?たぶんjQueryの構文とそれはクロスブラウザと互換性がありますか? –

+0

いいえ、ブラウザ間ではない理由はありません。実際には、IEを破る実際の評価とは無関係のページの部分です。この質問のおかげで、私は今IEで再び動作するようにそれを修正するために10年後の刺激を持っています:) – Phrogz

+0

ありがとう、私は 'ライブ'機能が大好きです。 –

0

私はページを読み込むためにajax呼び出しを行うべきだと思います。私はJQueryをお勧めします.JQueryは非常に簡単で、サイト上にたくさんの例があります。

それはこのようになります:

'txta' はテキストエリアのIDです
$.get('http://site.com/file.j', function(data) { 
    $('#txta').text(data); 
}); 

ブラウザでスクリプトを実行する場合は、javascript eval()関数を使用できますが、クロスサイトスクリプティングを含むあらゆる種類のセキュリティ上の欠陥につながる可能性があるため、このアプローチには注意が必要です攻撃。

2

eval()機能を使用してください。

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

そして、あなたは、ユーザーがあなたのCMSにJavaScriptを入力できるようにするつもりなら、あなたはcross-site scripting (XSS)の速度までです確認してください。

+0

私はあなたの答えに感謝します。しかし、彼が最初に答えて作業コードを表示して以来、私はPhrogzに答えを出さなければなりません。それは私のCMSになることはありませんが、他の人はJavascriptを使用しますが、他の人は自分のサイトでJSを自分のサイトに置くことができます(DBクラスにXSSが組み込まれたCodeIgniterを使用します)。 –

関連する問題