我有一个页面,例如test.html,我想将它更改为例如test.php,当用户离开页面时,有没有办法这样做?
我知道如何使用重命名来改变它。但是当用户离开页面时如何调用它?
答案 0 :(得分:0)
我想到的第一件事就是使用beforeunload事件,在浏览器卸载页面之前触发另一个事件,进行ajax调用并让php完成剩下的工作。
jQuery的:
window.onbeforeunload = function() {
$.post(
'rename-file.php',
{file: "this.html"}
).done(response) {
console.log('Response: ' + response);
}
}
PHP:
<?php
$oldname = $_POST['file'];
$newname = str_replace('.html', '.php', $oldname);
if(rename ( $oldname , $newname )) {
echo 'File renamed successfully';
} else {
echo 'File could not be renamed';
}
会起作用吗?这是必须要看的东西......
onbeforeunload事件可能不适用于所有浏览器,这是其中一个缺点。
你必须要考虑的其他事情是:这真的有必要吗?要重新命名我使用的另一个扩展名,因为服务器使用该文件进行渲染,因此知道重命名过程可能是不可能的。
最后但并非最不重要的是,安全性,上面的代码只是一个基本的例子,但请记住,安全是幸福的关键。