4 回答
TA贡献1816条经验 获得超4个赞
您可以将事件侦听器函数订阅到 window.onfocus 事件。尝试以下操作:
document.addEventListener("DOMContentLoaded", function (event) {
window.onfocus = function () {
$("#div1").load("button.php");
}
});
我强烈建议您进一步阅读 javascript 事件。
对于纯 JavaScript: https:
//www.w3schools.com/js/js_events.asp
对于 jQuery: https:
//api.jquery.com/category/events/
TA贡献1856条经验 获得超5个赞
$(document).ready 事件仅在 DOM 加载后运行一次。因此,除非重新加载页面,否则该事件不会触发。
如果用户在另一个浏览器选项卡中购买订阅,然后返回到原始选项卡,则会触发 windows.onfocus 事件。
因此,您可以使用 window.onfocus 事件在每次 view.php 选项卡变为活动状态时检查订阅,然后在必要时显示按钮。所以你可以在 view.php 中使用类似下面的内容
$(document).ready(function(){
window.onfocus = function () {
$("#div1").load("button.php");
}
});
TA贡献1847条经验 获得超11个赞
嘿,你必须使用 Window setInterval() 方法,该方法的作用是它会按照你设置的时间间隔在后台触发。
您可以调用 ajax 代码来设置/显示您的按钮
setInterval(function(){ $("#div1").load("button.php"); }, 3000);
确保添加此按钮后将 return false ,这样它就不会一次又一次地执行,不会增加网页上的负载。
TA贡献1876条经验 获得超7个赞
将 iframe 添加到 view.php 中,不需要包含任何内容也不需要可见。
<iframe name="download" id="if_download" src="blank.html"></iframe>
将下载操作定位到 iframe。加上一些JS:
function download(href) {
window.frames['download'].location = 'download.php?file=' + href;
return false;
}
您可能需要通过 php 文件包装下载操作以修改其标头
下载.php:
$file_name = $_GET['file'];
//validate file exists and *remove any ../ - simple:
if (strpos($file_name, '/') !== false) die('yeah right..');
header("Content-Disposition: attachment;filename=\"$file_name\"");
echo file_get_contents($file_name);
die();
- 4 回答
- 0 关注
- 128 浏览
添加回答
举报