首页 文章

发送ajax请求以检索整个页面时没有获得完整响应

提问于
浏览
0

我正在使用J-Query Ajax . 我想要做的是,我发送请求获取我在 bitbaysolutions.com 上托管的页面的整个html数据 . 问题是,当我加载this URL并输入 document.getElementsByTagName("div"); 时,我在控制台中获得了 37 div元素的列表 . 但是当我向这个相同的URL发送ajax请求并通过 $(response).find('div'); 过滤div元素时,我将div元素列表缩减为 25 ,并且缺少类名 ._myresult 所需的div . 当我只是发送请求而不过滤它,然后将结果作为 console.log(response); 然后我得到整个html数据,并且我需要得到的div元素存在于那里 . 当我尝试过滤那个div时, $(response).find('._myresult')); 然后我得到的是这个:

[prevObject: n.fn.init(35), context: undefined, selector: "._myresult"]
context:undefined
length:0
prevObject:(35) [text, title, text, link, text, meta, text, link, text, link, text, script, text, script, text, script, text, div#login, text, div#signup, text, comment, text, div.fb-reg, text, comment, text, div._myresult, text, div#thanks, text, div#thanks_login, text, script, text]
selector:"._myresult"
__proto__:Object(0)

从上面的结果中你可以看到该过滤器的长度为0,甚至你可以看到 div._myresult 存在于html中,我可以在不过滤它的情况下得到它 . 但是当我尝试提取时,我没有得到所需的元素 .

The J-Query Ajax I tried

$.ajax({
  method:"get",
  url: "http://www.bitbaysolutions.com",
  complete : function(){},
  success: function(response){
    var data = response;
    console.log(data);
    //console.log($(data).find('div'));
    //console.log($(data).find('._myresult'));  
  }
 });

您可以访问此URL并键入document.getElementsByClassName('_ myresult')或document.getElementsBytagName('div')以检查我需要的类以及那里存在的div元素的数量 . 注意:我在iframe的chrome扩展页面中显示了https://www.bitbaysolutions.com页面 . 例如:<iframe src =“http://www.bitbaysolutions.com”id =“myiframe”style =“width:100%; height:100%; position:fixed; top:0; left:0; border:none ; overflow-y:scroll;“> </ iframe>我制作了交叉源Ajax请求,这些请求只能在扩展中使用 .

总结一切,我需要通过Ajax请求获取类名为 ._myresult 的div元素 . 这就是我所需要的 .

1 回答

  • 1
    $.get("http://bitbaysolutions.com/", function(page) {
        $(page).find("div").each(function(){
            console.log( this.className );
        });
    });
    

    在调用它之后,我根本没有获得_myresult div,就像wOxxOm所说的那样,它必须在页面加载后以某种方式动态添加 .

    您可以使用上面的代码尝试通过您正在使用的扩展页面获取div . 替换每个函数并正确选择你的div,它可能会找到它,因为整个页面正在通过iframe加载,就像你说的那样脚本也会运行,它应该加载所有内容 .

相关问题