Javascript 使用JS解析HTML字符串而不触发任何页面加载?

Javascript 使用JS解析HTML字符串而不触发任何页面加载?,javascript,html,Javascript,Html,如前所述,在JavaScript中解析HTML的一个好方法是简单地重复使用浏览器的HTML解析功能,如下所示: var el = document.createElement( 'html' ); el.innerHTML = "<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='

如前所述,在JavaScript中解析HTML的一个好方法是简单地重复使用浏览器的HTML解析功能,如下所示:

var el = document.createElement( 'html' );
el.innerHTML = "<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>";
// process 'el' as desired
var el=document.createElement('html');
el.innerHTML=“titleTest”;
//根据需要处理“el”
但是,这会触发为某些HTML字符串加载额外页面,例如:

var foo = document.createElement('div')
foo.innerHTML = '<img src="http://example.com/img.png">';
var foo=document.createElement('div'))
foo.innerHTML='';
运行此示例后,浏览器将尝试加载页面:


如果没有这种行为,我如何从JavaScript处理HTML?

我不知道是否有一个完美的解决方案,但由于这只是为了处理,您可以在指定innerHTMl之前将所有src属性替换为notSrc=“xyz.com”,这样就不会加载它,如果您以后在处理过程中需要它们,您可以对此进行说明。
浏览器主要加载图像、脚本和css文件,这将修复前2个,css可以通过替换href属性来完成。

如果您想解析HTML响应而不加载任何不必要的资源,如图像或脚本,请使用DOMImplementation的createHTMLDocument()创建新文档,该文档未连接到浏览器分析的当前文档,其行为与普通文档相同