2016-08-19 44 views
0

是否可以检测到网页的Fold而不实际将其加载到Web浏览器中?检测网页的“折叠”而不将其加载到浏览器中

假设我有5个网址,并且希望知道这5个网址的折叠位置而不加载它们。更像批处理操作。 这可以使用Java/Javascript/Python ?

+1

什么是折叠位置? – brk

+0

这是用户必须向下滚动的网页上的要点。折叠上方是页面首次加载时在浏览器窗口中可见的网页部分。页面中需要滚动才能看到内容的部分称为“低于折叠”。 – aks

+0

@aks检测到哪里?在浏览器中?在服务器?有插件?别的地方? – Teemu

回答

0

''折叠''或多或少是一个设计原则,当时的反应并不是一件事情。现在我不会太在意'折叠',但问自己这个问题:'为什么要折叠呢?'。

一个伟大的文章,你(或你的设计师)应改为:http://iampaddy.com/lifebelow600/

话虽如此...

的“折”是相对于浏览器窗口的高度。在移动设备上,折叠可以小到320px,而在27“屏幕上的全屏可以在大约1400px的某个位置。

如果您的问题是:'我如何检测Y位置给定分辨率的特定元素而不加载到浏览器中?',你应该重新考虑'浏览器'这个术语,浏览器是将HTML/CSS渲染为一些视觉效果的部分,现在大多数浏览器直接渲染到屏幕上(Chrome,Safari,Firefox等)

然而......还有一种像'无头'浏览器这样的东西,它们是不呈现在屏幕上的浏览器,但提供了与之交互的功能该页面(如:采取截图和东西)。在这种情况下,我建议你看看Phantom JSCasper JS。这些都是很棒的软件包,允许您通过脚本加载一个或多个页面并截取它,或者您可以通过普通和简单的JavaScript读出DOM元素的顶部偏移量。

幻影JS例如:

var page = require('webpage').create(); 
var url = 'http://phantomjs.org/'; 
page.open(url, function (status) { 
    //Page is loaded! 
    // Take screenshot: 
    page.render('screenshot.png'); 
    // Get offsetTop of the footer in the page: 
    var offset = page.evaluate(function() { 
    return document.querySelector('.footer').offsetTop; 
    }); 
    console.log('Footer offset = ' + offset); 
    phantom.exit(); 
}); 

希望这有助于你一些。