此代码适用于IE,FF等。但不适用于Safari。我不明白这一点。
我的网站上有一个链接:
<a href="/show/231" onClick="web('231')">Show</a>
现在是.js文件:
function web(id) {
$("#showIMG").load("/web", {
id: id
}, function() {});
}
“/ web”是一个PHP文件(web.php)。在web.php中只有一个PHP代码,可以在数据库中保存一个值。
我是Safari,重定向(/ show / 231)有效。但它没有保存数据库中的值。 “加载”不起作用。
我在这里测试了这个:
function web(id) {
$("#showIMG").load("/web", {
id: id
}, function() {});
alert('clicked');
}
警报有效。但不是负荷?
当我更改此链接时
<a href="#" onClick="web('231')">Show</a>
“加载”有效,但不能重定向到/ show / 231。
答案 0 :(得分:1)
当Safari开始导航到下一页时,它会停止您的AJAX请求。
要避免这种情况,您需要阻止点击(通过向处理程序添加return false;
),然后通过在AJAX完成处理程序中设置location.href
来显式导航。
答案 1 :(得分:0)
页面的更改可能会取消图像的负荷,因为图像将不可见。
你可以让web方法调用使用location.href =“”insted。
进行重定向答案 2 :(得分:0)
由于.load函数是异步的,因此在浏览器导航到“/ show / 231”之前,AJAX请求可能没有时间执行。
根据您的示例,我会尝试将.load更改为.ajax并使用以下参数:
$.ajax({
async: false,
url: '/web',
data: 'id=' + id,
success: function(){}
});
'async:false'参数/值使AJAX请求同步而不是异步....这可以解决您的问题。