刷新弹出窗口 Window
Refresh Popup Window
我正在使用 Django 制作一个网站,我想要一个弹出窗口 window 来显示日志消息并且每 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 函数的数据未定义:
未捕获类型错误:无法读取未定义的 属性 'logLines'
然而,当我这样称呼它时(作为一个简单的警报 window)它起作用了:
<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
的背后不应该有()
我正在使用 Django 制作一个网站,我想要一个弹出窗口 window 来显示日志消息并且每 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 函数的数据未定义:
未捕获类型错误:无法读取未定义的 属性 'logLines'
然而,当我这样称呼它时(作为一个简单的警报 window)它起作用了:
<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
()