If I'm about to call a pushState
but I want to preserve all the relative links, images, stylesheets, ect, I do something like this so far:
$('[href]').each(function() {
if (!/^#/.test(this.href)) this.href = this.href;
});
$('[src]').each(function() { this.src = this.src });
My question is: will this work cross browser? Do I need to do $(this).attr('href') = this.href
?
Is this necessary? Is there another way to do this? Is this the best way to do it? And is it always going to work?
pushState
changes the relative path of the current document.
You can break or avoid breaking relative sources depending on how you do the relative path.
The ./*
pattern does relative paths off the current path, but plan old /*
will always start at the path root and would be unaffected by pushState
changes.
./this/would/break.jpg
/this/wont.jpg