2016-10-28 17:24:00 +03:00
|
|
|
<!DOCTYPE HTML>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<style>
|
|
|
|
#target5 {
|
|
|
|
position: absolute;
|
|
|
|
top: 0px;
|
|
|
|
left: 0px;
|
|
|
|
width: 20px;
|
|
|
|
height: 20px;
|
|
|
|
background: #f00;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
<body>
|
|
|
|
<div id="target"></div>
|
|
|
|
<script>
|
|
|
|
var io = new IntersectionObserver(function(records) {
|
|
|
|
var viewportWidth =
|
|
|
|
document.documentElement.clientWidth || document.body.clientWidth;
|
|
|
|
var viewportHeight =
|
|
|
|
document.documentElement.clientHeight || document.body.clientHeight;
|
2017-04-27 10:18:07 +03:00
|
|
|
var result = records.length === 1 &&
|
2016-10-28 17:24:00 +03:00
|
|
|
records[0].rootBounds.top === 0 &&
|
|
|
|
records[0].rootBounds.left === 0 &&
|
|
|
|
records[0].rootBounds.right === viewportWidth &&
|
|
|
|
records[0].rootBounds.width === viewportWidth &&
|
|
|
|
records[0].rootBounds.bottom === viewportHeight &&
|
|
|
|
records[0].rootBounds.height === viewportHeight;
|
2017-04-27 10:18:07 +03:00
|
|
|
if (!result) {
|
2017-06-20 19:04:25 +03:00
|
|
|
result = [records.length,
|
|
|
|
records[0].isIntersecting,
|
|
|
|
records[0].rootBounds.top,
|
2017-04-27 10:18:07 +03:00
|
|
|
records[0].rootBounds.left,
|
|
|
|
records[0].rootBounds.right,
|
|
|
|
records[0].rootBounds.width,
|
|
|
|
records[0].rootBounds.bottom,
|
|
|
|
records[0].rootBounds.height,
|
|
|
|
viewportWidth,
|
|
|
|
viewportHeight].join(',');
|
|
|
|
}
|
|
|
|
window.opener.postMessage(result, '*');
|
2016-10-28 17:24:00 +03:00
|
|
|
});
|
|
|
|
io.observe(document.getElementById("target"));
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|