簡體   English   中英

刷新彈出窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM