Javascript 如何在解析html文件时强制不发送其他请求?
我正在编写一个chrome扩展,它向网站发送Javascript 如何在解析html文件时强制不发送其他请求?,javascript,Javascript,我正在编写一个chrome扩展,它向网站发送GET请求,并开始删除作为响应返回的.html文件。 在查看ChromeDevTool中的网络部分时,我看到html发送了很多无用的(对我来说)请求,因为它们是网页逻辑的一部分。 有没有一种方法可以原样读取和解析html文件而不创建所有这些间接请求? 另一个请求的发起人是行(如chrome所示): 这是我正在运行的代码中与此问题相关的部分: function makeCall(word) { var xhr = new XMLHttpReque
GET
请求,并开始删除作为响应返回的.html
文件。
在查看ChromeDevTool中的网络部分时,我看到html发送了很多无用的(对我来说)请求,因为它们是网页逻辑的一部分。
有没有一种方法可以原样读取和解析html文件而不创建所有这些间接请求?
另一个请求的发起人是行(如chrome所示):
这是我正在运行的代码中与此问题相关的部分:
function makeCall(word) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = processResponse(xhr);
xhr.open("GET", 'https://school.morfix.co.il/' + word, true);
xhr.send(null);
}
function processResponse(xhr) {
return function(){
if (xhr.readyState == XMLHttpRequest.DONE) {
var htmlObject = document.createElement('div');
htmlObject.innerHTML = xhr.responseText;
var translations = htmlObject.getElementsByClassName("normal_translation_div");
for (var i=0; i< translations.length; i++){
var trans = translations[i].innerHTML;
console.log(trans.replace(/<span class=\"clearOutputLanguageMeaningsString\">; <\/span>/g, ";"));
}
}
}
}
函数makeCall(word){
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=processResponse(xhr);
xhr.open(“GET”https://school.morfix.co.il/""字,对",;
xhr.send(空);
}
函数processResponse(xhr){
返回函数(){
if(xhr.readyState==XMLHttpRequest.DONE){
var htmlObject=document.createElement('div');
htmlObject.innerHTML=xhr.responseText;
var translations=htmlObject.getElementsByClassName(“正常翻译div”);
对于(var i=0;i
尝试访问而不是responseText
。它应该为您提供一个可以对其执行查询的文档
如果不起作用,可以使用来解析响应,而不是创建DOM节点,如下所示:
const parser = new DOMParser()
const parsedDoc = parser.parseFromString(xhr.responseText, 'text/html')
// now you can use the parsedDoc like a regular document
var translations = parsedDoc.getElementsByClassName("...")
const parser = new DOMParser()
const parsedDoc = parser.parseFromString(xhr.responseText, 'text/html')
// now you can use the parsedDoc like a regular document
var translations = parsedDoc.getElementsByClassName("...")