我有一個加載特定JavaScript包的網頁。通過URL在Django頁面上執行JavaScript,無需重新加載
www.mySite.com
如果我在瀏覽器控制檯中輸入JavaScript命令,我可以與它們進行交互。
讓我們
alert('5')
作爲一個簡單的例子。
我想同一個JavaScript調用,而瀏覽器控制檯,而是通過像一個特定的URL來執行:
www.mySite.com/?value=5
讓這導致我的JavaScript命令執行?
沒有Page beeing重新加載/刷新,但仍處於實際狀態。
我的方法是在我的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)
但是,這導致了我的頁面的損失在那裏我輸入的網址。
有沒有人有一個想法如何保留實際的瀏覽器內容? 這樣就可以調用加載的Javascript包?
另一個想法是通過Ajax調用JavaScript。但是,我如何將Django中的URL映射到Ajax請求?
使用'eval'?通常是一個壞主意。使用它來執行GET輸入?是的,不要這樣做:) – brianpck
是的,用戶可以做壞的事情,但只有他可以做的事情與相應的知識(手動複製和編輯頁面)。但是在真正的應用程序中,過濾可用的命令會很好/不要使用'eval'。 – Zeromatiker