[英]Refresh Popup Window
我正在使用Django創建一個網站,我想要一個彈出窗口來顯示日志記錄消息,並將每N秒自動刷新一次。 我正在為彈出式窗口使用標准的python記錄器,javascript和Dajaxice。
我一直在關注如何使彈出窗口自動刷新,並且它需要使用Dajaxice函數中檢索到的日志文件內容。
我的ajax.py看起來像這樣:
import json, SIMPLCode, logging, os, sys
from dajaxice.decorators import dajaxice_register
@dajaxice_register(method='GET')
def getLogs(request):
fname = "SIMPLCode/Logs/LOG_2015-07-08.log"
with open(fname,"r") as f:
lines = f.readlines()
lines = lines[-10:]
return json.dumps({'logLines':lines})
我建議的Django HTML看起來像這樣 :
<button class="btn btn-primary" onclick="Dajaxice.InterfaceApp.getLogs(popitup())">{% bootstrap_icon "share-alt" %} View Log File </button>
建議的JS看起來像這樣 :
function popitup(data) {
$(document).ready(function(data) {
var log_file = data.logLines;
var newwindow=window.open('','Log Viewer','height=300,width=500');
newwindow.write(log_file)
});
if(newwindow && !newwindow.closed){
newwindow.location.reload(true);
newwindow.focus();
}
}
我嘗試了此操作,但收到一個錯誤,未定義我的dajaxice函數的數據:
未捕獲的TypeError:無法讀取未定義的屬性'logLines'
但是,當我這樣稱呼它(作為一個簡單的警報窗口)時,它可以工作:
<input id="LogMessages" type="button" value="View Log Messages" onclick="Dajaxice.InterfaceApp.getLogs(function(d){alert(d.message);})"/>
我對JS和dajaxice相當陌生,在線上沒有太多可用於dajax的工具。 誰能幫我這個忙嗎?
問題出在我怎么稱呼它。 正確的方法如下所示:
<button class="btn btn-primary" onclick="Dajaxice.InterfaceApp.getLogs(popitup)">{% bootstrap_icon "share-alt" %} View Log File </button>
對popitup
的調用后面不應該包含()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.