如何在新选项卡上运行脚本后立即打开新选项卡并将其关闭

时间:2014-07-24 15:14:05

标签: javascript jquery dom google-chrome-extension phantomjs

我对Javascript和编程相当新,并且一直在尝试制作Chrome扩展程序,以监控用户在特定网站上查看的任何产品的价格,并在价格发生变化时通知用户。我正在抓DOM来获取价格。 我希望扩展程序每5个小时访问一次页面并抓取DOM并更新价格。

我认为可以帮助我做到这一点的两种方法是使用PhantomJs或者让我的扩展程序打开带有保存URL的新选项卡,运行脚本来立即抓取并关闭它。

如何以新的标签方式或Phantom方式进行操作?

我尝试过window.open(url,'_ blank')并设置超时但没有帮助。 尝试使用iframe但无法访问框架中的文档。

如果我没有遵守提出问题的指导,请原谅。这是我的第一次。

1 个答案:

答案 0 :(得分:2)

假设内容未动态加载,我认为您不必打开新选项卡来执行此操作。我只是做一个HTTP get请求来接收页面的HTML来抓取。这可以使用普通的javascript

来完成
function httpGet(theUrl)
{
    var xmlHttp = null;

    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}

或使用jQuery

$.get(
    "somepage.php",
    {paramOne : 1, paramX : 'abc'},
    function(data) {
       alert('page content: ' + data);
    }
);

获得响应后,您可以使用jQuery.parseHTML或类似内容将其转换为您可以随意抓取的DOM节点数组。