首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当Chrome在后台运行时,针对动态站点更新的chrome桌面通知

当Chrome在后台运行时,针对动态站点更新的chrome桌面通知
EN

Stack Overflow用户
提问于 2013-05-03 00:38:38
回答 1查看 871关注 0票数 1

我已经为社区网站创建了一个书签扩展,其中托管帖子,我需要在社区网站上有新帖子的桌面通知。chrome在后台运行,但不会打开任何标签,除非收到桌面通知。

想法是定期从后台页面向内容脚本发送消息,并在帖子上获得更新并显示桌面通知,从而用户在看到通知时打开更新。

查询:如何访问网站的DOM (当chrome在后台运行时),对用户隐藏提取过程。

谢谢!!

编辑

代码语言:javascript
复制
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文件,只是我需要提取网站上的第一个内容或更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 21:51:26

您需要使用来自XMLHttpRequest的响应。执行XMLHttpRequest请求不会将请求资源加载到页面中。

在jQuery中,你可以这样做:

代码语言:javascript
复制
$.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中获取所需的元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16343320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档