私は特定のJavaScriptパッケージを読み込むWebページを持っています。URLを介してDjangoページのJavaScriptを再ロードせずに実行する
www.mySite.com
ブラウザのコンソールにJavaScriptコマンドを入力すると、それらとやり取りできます。
は簡単な例として
alert('5')
を取ることができます。
私は同じようにJavaScriptがブラウザのコンソールなしではなく、特定のURLを介して実行されるように呼び出しを希望:これは私のJavaScriptのコマンドの実行につながるよう
www.mySite.com/?value=5
?
このページは再読み込み/リフレッシュされずに実際の状態にとどまりません。
私のアプローチは、私のDjangoビューで拡張URLをキャッチし、JavaScriptコマンドを実行することでした。
ビュー:
class ShowPage(View):
def get(self, request, caseId):
value = request.GET.get('value', '')
if(value is not ''):
// execute JavaScript here...
return HttpResponse("<script>alert(" + value + ")</script>")
else:
...
return render(request, 'template.html', context)
しかし、これは私がURLを入力し、私のページの損失につながります。
実際のブラウザコンテンツを保存する方法を知っている人はいますか? ロードされたJavascriptパッケージを呼び出すことは可能ですか?
もう1つのアイデアは、JavaScriptをAjax経由で呼び出すことでした。しかし、DjangoのURLをAjaxリクエストにどのようにマップするのですか?
'eval'を使用していますか?通常は悪い考えです。それを使用してGET入力を実行しますか?ええ、それはしないでください:) – brianpck
ええ、ユーザーは悪いことをすることができますが、とにかく彼は適切な既知の方法で(手動でページをコピーして編集して)行うことができるものだけです。しかし、実際のアプリケーションでは、使用可能なコマンドをフィルタリングするのが良いでしょう/ 'eval'を使用しないでください。 – Zeromatiker