Javascript Can';无法从html页面获取文本

Javascript Can';无法从html页面获取文本,javascript,html,iframe,fetch,xss,Javascript,Html,Iframe,Fetch,Xss,我有一页: 当您将鼠标悬停在评级上时,会弹出一个文本“5分之3.5”的弹出窗口 我需要获得此文本“5分之3.5”,但在尝试了两种不同的方法后,我无法做到这一点: 方法1:从页面正文获取 文本位于iframe中: 如果我尝试使用javascript获取iframe主体内容,我会遇到一个跨源错误: 我认为这是因为iframe src来自不同的url 是否有任何方法可以使用javascript在我的chrome控制台开发工具窗口中获得此评级txt? 我一直在尝试使用这样的代码: window.ad

我有一页: 当您将鼠标悬停在评级上时,会弹出一个文本“5分之3.5”的弹出窗口

我需要获得此文本“5分之3.5”,但在尝试了两种不同的方法后,我无法做到这一点:

方法1:从页面正文获取 文本位于iframe中:

如果我尝试使用javascript获取iframe主体内容,我会遇到一个跨源错误: 我认为这是因为iframe src来自不同的url

是否有任何方法可以使用javascript在我的chrome控制台开发工具窗口中获得此评级txt? 我一直在尝试使用这样的代码:

window.addEventListener('message', receiver, false);
function receiver(e) {
    console.log("e3=",e.currentTarget[3]);
}
function update_child() {
    var el = document.querySelectorAll("iframe")[1];
    el.contentWindow.postMessage('Updated from parent', '*');
}
当我将鼠标悬停在iframe上时,这段代码会进行检测,但我无法使用它打印内部文本内容

方法2:获取请求 如果我访问URL:

在我的浏览器中,我获得了我需要的信息,我一直在尝试向该站点发出获取请求,但由于我的代码:

// Example POST method implementation:
async function postData(url = '', data = {}) {
  // Default options are marked with *
  const response = await fetch(url, {
    method: 'POST', // *GET, POST, PUT, DELETE, etc.
    mode: 'no-cors', // no-cors, *cors, same-origin
    cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
    credentials: 'same-origin', // include, *same-origin, omit
    headers: {
      'Content-Type': 'application/json'
      // 'Content-Type': 'application/x-www-form-urlencoded',
    },
    redirect: 'follow', // manual, *follow, error
    referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
    body: JSON.stringify(data) // body data type must match "Content-Type" header
  });
  return response.json(); // parses JSON response into native JavaScript objects
}

postData('https://widget.trustpilot.com/trustbox-data/577258fb31f02306e4e3aaf9?businessUnitId=5c53658de78c440001024900&locale=en-US&sku=TP463%2CTP463%2017%2CTP463%2018%2CTP463%2019').then(response => {
  console.log("response=",response)
})
.then((data) => {
  console.log("data=",data)
})
.catch((error) => {
  console.log("error=",error)
})
无法从该URL返回数据

更改Javascript上下文。 控制台上方是一个“上下文”下拉列表。通常,对于顶级文档,它应该是Top。查看您的站点,有几个iFrame具有相同的内容,您可能需要猜测它是哪一个。但是,您可以将上下文更改为正确的iframe,并从那里正常执行选择器。我在下面添加了一个示例

//我的黑客方法:
函数get_content(){
var html=document.getElementById(“txt”).innerHTML;
document.getElementById(“txt”).innerHTML=html.replace(/]*>/g,”);
}
//Gabi优雅的方法,但消除了一行不必要的代码:
函数gabi_content(){
var元素=document.getElementById('txt');
element.innerHTML=element.innerText | | element.textContent;
}
//并利用ID污染窗口名称空间的事实:
函数txt_content(){
txt.innerHTML=txt.innerText | | txt.textContent;
}
.A{
背景:蓝色;
}
.B{
字体:斜体;
}
C{
字体大小:粗体;
}

我是 工作于 ABC公司。


我的第一个JavaScript
单击我以显示日期和时间。


包含所需文本的元素具有id。
document.querySelector(“产品信息”)。innerText
不起作用?