在一个网站扩展中,我将模板元素从后台页面传递为字符串到一个空的本地HTML文件,并使用
我在这个SO问题中看到了一些例子,它们使用
另一个SO问题,十年前,有一个五年前的回答对像我这样的新手来说很有趣; 我尝试了这个,看起来可行。
browser.tabs.insertCSS
和browser.tabs.executeScript
来传递CSS和JS。这一直很有效,但最近我了解到可以使用fetch直接从扩展中检索文件,这将减少后台页面的大小或完全消除它,只剩下后台脚本,从而减少RAM的使用。我在这个SO问题中看到了一些例子,它们使用
innerHTML
将HTML字符串写入body元素,还有一个使用DOMParser。
但如果你尝试,HTML会添加到body元素中。另一个SO问题,十年前,有一个五年前的回答对像我这样的新手来说很有趣; 我尝试了这个,看起来可行。
fetch('file.html')
.then( response => response.text() )
.then( result => {
let parser = new DOMParser(),
doc = parser.parseFromString( result, 'text/html' );
document.replaceChild( doc.documentElement, document.documentElement );
} );
我的问题是,这是否是一种有效可靠的方法完全替换HTML元素?
谢谢。