我正在尝试让ajax导航正常工作,所以下面是我尝试过的:
$('nav a').on('click', function() {
$.ajax({
url: this.href,
success: function(data) {
$('#content').html( $(data).find('#content').html() );
}
});
});问题是,因为一切都是相对链接的,没有我的链接或img的工作。更糟糕的是,它试图加载所有的img,甚至是我不使用的那些(自动img预加载),并且我的徽标的相对路径对于某些页面是不正确的。
如果我更改了所有的src和href实例,然后通过正则表达式运行它来查找并替换所有坏路径,然后将属性改回src和href,它会起作用吗?
这就是我的意思。
$('nav a').on('click', function() {
var href = this.href
$.ajax({
url: this.href,
success: function(data) {
var html = data.replace(/href/g, 'hrefhref')
.replace(/src/g, 'srcsrc');
$('#content').html(
$(html).find('#content').html().replace(/hrefhref/g, 'href')
.replace(/srcsrc/g, 'src')
.replace(/href=\.\/'/g, "href='" + href)
.replace(/href=\.\/"/g, 'href="' + href)
.replace(/src=\.\/'/g, "src='" + href)
.replace(/src=\.\/"/g, 'src="' + href)
);
}
});
});我的问题是:如果路径不是以点开头,有什么方法可以让它工作吗?当然,如果href或src attr在另一个域上或已经绝对路径,那么它不应该更改任何内容
此外,这将始终适用于所有浏览器,是否会有一个attr hrefhref和srcsrc在解析时被剥离。
发布于 2012-03-19 10:21:26
在设置中使用BASE元素。这样,您就可以在本地进行开发,并将其放在服务器上。唯一需要更改的是BASE元素中的href。
http://www.w3.org/TR/html401/struct/links.html#h-12.4
或者也可以看看“可怕和可悲”的W3Schools解释:http://www.w3schools.com/TAGS/tag_base.asp
https://stackoverflow.com/questions/9740920
复制相似问题