我的JavaScript应用程序通过XHR检索网页,然后像这样解析:
var el = document.createElement( 'html' );
el.innerHTML = xml;
var links = el.getElementsByTagName( 'a' );
在此过程中,链接'href
标记会被重新解释为相对于此文档,因此我会获得http://localhost:8000/download.zip
之类的链接。
我试图围攻它:
if (link.origin === document.origin) {
link.href = link.href.replace(link.origin, h.url.replace(/\/$/, ''));
}
但这无法区分foo.org/bar
(foo.org/bar/download.zip)和foo.org/bar.php
(foo.org/download.zip),我真的不想走下兔子洞,准确地确定要进行哪些替换。
我尝试在文档中注入<base href=...>
或<xml:base=xxx>
,但这不起作用。
我错过了什么?这似乎是一个普遍的需求?
我没有使用任何jQuery或任何类似的东西(也不能。)