这是一个ColdFusion 8问题。
我有一个cfm页面,其中有一个按钮,onClick调用位于页眉中的以下Javascript函数:
function confirm_expiration_letters() {
var resultOfConfirm = confirm("Would you like to send expiration and reminder letters?");
if (resultOfConfirm == true) {
document.body.style.cursor = "wait";
window.location="_expiration_letters.cfm";
}
}
在被调用的页面上,生成一系列电子邮件,然后使用以下两行生成并显示PDF报告文件:
<cfheader name="Content-disposition" value="attachment;filename=#fileName#">
<cfcontent type="application/pdf" file="#docPath#/#fileName#" deletefile="true">
注意在JS函数中,光标变为“wait”。但是在上面的cfheader调用之后程序控件似乎丢失了,所以我找不到任何可以将光标重置回的地方: document.body.style.cursor =“default”;
您是否有关于我可以放置此项以关闭光标动画的想法?我尝试了多个地方但它不起作用。一旦cfheader和cfcontent调用发生,就会丢失对前一个窗口和光标的控制。
答案 0 :(得分:0)
您可以在cfheader上面尝试这样的事情。
<script>
document.body.style.cursor = "default";
</script>
<cfflush/>
问题在于这样做可能(可能会)搞砸cfheaders,因为cfflush旨在刷新部分结果并包含标题。但这是我唯一能想到的。
答案 1 :(得分:0)
使用HTML / GIF动画显示加载消息,而不是更改光标。加载PDF时,它将替换加载屏幕。
我建议使用包含加载消息的隐藏div,然后使用JavaScript使其在需要时显示。
这是一些JavaScript。这是用jQuery完成的。
function confirm_expiration_letters() {
var resultOfConfirm = confirm("Would you like to send expiration and reminder letters?");
if (resultOfConfirm == true) {
$('#Loading').fadeIn(); //SHOW THE LOADING INDICATOR
$.post('PDFGenerator.cfm', function(returnData){ // AJAX POST, CALLBACK
//RETURN THE FILENAME OR LOCATION OF THE PDF
var FileName = $.trim(returnData); // TRIM THE RETURNED DATA
window.open("path_to_file/" + FileName,"_blank"); // NEW WINDOW
$('#Loading').fadeOut(); // HIDE THE LOADING INDICATOR
});
}
}
答案 2 :(得分:0)
如果我理解正确,您希望在准备PDF时有一个“等待”光标,然后返回到标准光标。
当您等待所请求的文档时,网页浏览器是否自动执行此操作? IE:只要你执行window.location,文档加载时,游标会自动更改为“等待”,然后在提供文档后,返回“自动”。
这就是我所看到的(当运行类似于你的代码时)。这是不是你看到了什么?