使用jquery地址我正在设置我的href链接:
<a href="#view_profile=123">view 123</a>
调用我的地址更改事件时:
$.address.change(function(e) {
alert(e.value);
});
我看到FF和Chrome的价值正如我所料:
/view_profile=123
然而,IE会返回带有前面“/”的完整URL路径,如下所示:
/http://localhost/#view_profile=123
知道为什么IE会这样做以及解决它的最佳方法是什么?我尝试了几件事,但每次都是这样。
以下是我用来获取链接路径的代码:
// Setup jQuery address on some elements
$('a').address();
// Run some code on initial load
$.address.init(function(e) {
// Address details can be found in the event object
});
// Handle any URL change events
$.address.change(function(e) {
alert(e.value);
var urlAux = e.value.split('=');
var page = urlAux[0];
var arg = urlAux[1];
alert("page: " + page);
alert("arg: " + arg);
if (page == "/view_profile") {
...
}
});
答案 0 :(得分:1)
我找到了一个解决方法。如果我向链接添加一个类标记并在类上查找click事件,我可以设置URL并正确触发jquery地址更改事件。
$(".testclass").click(function() {
var id = null;
if ($.browser.msie) {
id = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1);
}
else {
id = $(this).attr('href').substr(1);
}
alert("ID: " + id );
location.href = "#view_profile=" + id;
return false;
});
我还必须将href值设置为ID,如下所示:
<a href="#123" class="testclass">123</a>
答案 1 :(得分:0)
尝试使用$(this).prop(“href”)来获取网址。它应该在所有浏览器中获得相同的值。
编辑:路径名在IE中不起作用。
猜猜我应该做更多的测试。 pathname在IE中不起作用。只需使用“href”