我编写了以下函数来从日志文件中获取文本,并在新的浏览器窗口中将其显示为纯文本:
function openLog(logFile) {
var win = window.open('', '_blank');
var doc = win.document;
var title = doc.createElement('TITLE');
var titleText = doc.createTextNode(logFile);
title.appendChild(titleText);
doc.head.appendChild(title);
doc.body.style.cursor='wait';
$.ajax({
type: 'GET',
url: '/getLog',
data: { logFile : logFile },
success: function(log) {
var pre = doc.createElement('PRE');
var preText = doc.createTextNode(log);
pre.appendChild(preText);
doc.body.appendChild(pre);
doc.body.style.cursor='default';
},
error: function() {
doc.body.style.cursor='default';
}
});
};
'wait'游标对大型日志文件很有用。
在Chrome / IE中,当异步ajax请求在后台运行时,会立即显示“wait”光标。在Firefox中,只显示“默认”光标,因为它似乎在等待ajax函数首先完成(一旦它完成,它会立即设置为'default')。
Firefox中有解决方法吗?任何建议将不胜感激。
答案 0 :(得分:2)
我很惊讶它适用于任何浏览器 - 一个新打开的窗口会有一个零内容的主体因此零大小 - 你如何"悬停"什么都没有让当前光标更改为指定的光标?我认为Firefox是唯一行为正常的浏览器!!
那就是说 - 虚拟代码
print *this
我将其发布为可执行代码段,但是谁想允许SO为此打开弹出窗口:p
我使用function openLog(logFile) {
var win = window.open('', '_blank');
var doc = win.document;
var title = doc.createElement('TITLE');
var titleText = doc.createTextNode(logFile);
title.appendChild(titleText);
doc.head.appendChild(title);
// change from here
var html = doc.documentElement;
html.style.cursor = 'wait';
html.style.minHeight = '100vh';
// changes finished
//
// dummy setTimeout for testing
setTimeout(function () {
// remove the cursor from HTML element
html.style.cursor = 'default';
}, 4000);
};
openLog('banana');
(即HTML元素) - 因为为body.parentElement
执行此操作会以垂直滚动条结束