微软的新浏览器Edge似乎不接受空的href,例如<a href="">
。在其他所有浏览器中,这可以用来链接到base
标签。但在Edge中似乎不是这种情况。
我在这个问题中找到了解决这个问题的方法,即将href设置为./
。
但是在许多站点上更改这个设置非常麻烦。是否有其他的替代方案,不需要更改所有的href本身呢?
提前致谢。
function rewrite_empty_hrefs()
{
var dom_parser = new DOMParser();
var xml_serializer = new XMLSerializer();
var old_html_dom = dom_parser.parseFromString(document.body.innerHTML,"text/html");
var base_href = old_html_dom.querySelector("base").href;
var old_xhtml_string = xml_serializer.serializeToString(old_html_dom);
var new_xhtml_string = old_xhtml_string.replace(/(href=")(")/g, "$1"+base_href+"$2");
document.body.innerHTML = new_xhtml_string;
}
rewrite_empty_hrefs();
<base href="http://www.example.com">
<a href="">example.com</a>
<a href="">example.org</a>
<a href="">example.net</a>
参考资料
<base href="https://www.example.com">
和一个格式化为<a href="">example</a>
的链接。 - Alec Meijerink