我有一个正在浏览器控制台中运行的功能。
function answer(){
console.log(document.querySelector("#qti-choiceinteraction-container > tbody > tr.checkedrow > td.answer > div > label > span > p"));
}
显然,它是在我当前页面上的某个元素中打印一些文本。问题是,我想在其他页面上查询,而不是当前页面(文档)。
如果我有要在其上运行的页面的URL,如何在另一个页面而不是文档上调用querySelector
方法?
[如果页面在同一域中,或者没有跨域限制,请从该URL回复fetch
,然后使用DOMParser
将其解析为文档,然后可以使用querySelector
在该文档上:
fetch(url)
.then(res => res.text())
.then((responseText) => {
const doc = new DOMParser().parseFromString(responseText, 'text/html');
console.log(doc.querySelector("#qti-choiceinteraction-container > tbody > tr.checkedrow > td.answer > div > label > span > p"));
})
.catch((err) => {
// There was an error, handle it here
});
如果页面在另一个域上,[[和具有(通用)跨域限制),那么绕过这些限制的唯一方法是将请求退回服务器。 (让您的脚本向服务器发出请求,让服务器向另一个站点发出请求,然后让服务器将响应发送回您的脚本。)
function answer(element){
console.log(element);
}
answer(document.querySelector(".myDiv"))
<div class="myDiv"></div>