我已经为社区网站创建了一个书签扩展,其中托管帖子,我需要在社区网站上有新帖子的桌面通知。chrome在后台运行,但不会打开任何标签,除非收到桌面通知。
想法是定期从后台页面向内容脚本发送消息,并在帖子上获得更新并显示桌面通知,从而用户在看到通知时打开更新。
查询:如何访问网站的DOM (当chrome在后台运行时),对用户隐藏提取过程。
谢谢!!
编辑
var statone;
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.dsswym.3ds.com/", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status==200) {
setTimeout(function(){ //wait for the webpage loading
statone = $('#widgetPanel-7qrSN8CAwqKk0DP2_GQK').text();
console.log(statone);
alert(statone);
}, 10000);
}
}
xhr.send();我无法在上面的代码中获取文本值,相反,我的警告框是空的。源网站不提供xml或Json文件,只是我需要提取网站上的第一个内容或更新。
发布于 2013-05-03 21:51:26
您需要使用来自XMLHttpRequest的响应。执行XMLHttpRequest请求不会将请求资源加载到页面中。
在jQuery中,你可以这样做:
$.get("https://www.dsswym.3ds.com/", function(data) {
// load response text into a new page element
var fakePage = document.createElement("html");
fakePage.innerHTML = data;
// find the desired element within the new page element
var statone = $(fakePage).find('#widgetPanel-7qrSN8CAwqKk0DP2_GQK').text();
console.log(statone);
}
});这会将Ajax获取的结果存储到一个新的<html>元素的innerHTML中,该元素将把文本解析为一个新的DOM。然后,我们使用jQuery的.find方法从该DOM中获取所需的元素。
https://stackoverflow.com/questions/16343320
复制相似问题