Safari jquery a href onClick?

时间:2010-11-26 15:35:16

标签: jquery safari hyperlink onclick href

此代码适用于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。

3 个答案:

答案 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请求同步而不是异步....这可以解决您的问题。