PhantomJS获取文档元素位置

时间:2013-06-19 22:48:31

标签: javascript jquery phantomjs

我正在使用PhantomJS获取页面上某些元素的位置,例如iframe或对象。现在我

page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", function() {
    page.evaluate(function() {
        // Select attr etc.. 
        position = $(this).position();
        offset = $(this).offset();
    });
});

我已经尝试将$(window).load()添加到公式中,但它仍然没有在很多时候返回正确的元素位置。尤其是iFrames和Objects。也许他们是在DOM加载后定位的?无论哪种方式,任何人都有任何想法如何改进或改变方法以获得更准确的位置?

亲切的问候,

的Fab

1 个答案:

答案 0 :(得分:3)

回归的位置是什么?怎么回事?

一些事情。

1)当调用page.evaluate时,页面已经加载。这发生在page.open时间。 window.onload永远不会在page.evaluate内开火;它已经解雇了。

2)我不知道this中的page.evaluate是什么。

3)在PhantomJS上下文中,没有真正的理由使用jQuery。最好使用标准结构,例如document.documentElement.scrollTop

试试这个:

page.evaluate(function() {
    console.log(document.documentElement.scrollTop);
    console.log(document.getElementById("my-frame").getBoundingClientRect());
});