Facebook、Instagram 和 Twitter 浏览器未返回正确的视口高度

Posted

技术标签:

【中文标题】Facebook、Instagram 和 Twitter 浏览器未返回正确的视口高度【英文标题】:Facebook, Instagram, and Twitter browsers not returning proper viewport height 【发布时间】:2017-05-31 17:52:27 【问题描述】:

在过去的几周里,我一直在寻找适用于所有这些社交浏览器或至少 facebook 的解决方案,但尚未解决任何问题或发现任何有用的东西。我查看的最后几篇文章设置调整大小功能对我不起作用。

我试过了

JS

function _fixViewportHeight() 
    var html = document.querySelector('html');

    function _onResize(event) 
        html.style.height = window.innerHeight + 'px';
    

    window.addEventListener('resize', _.debounce(_onResize, 125, 
        leading: true,
        maxWait: 250,
        trailing: true
    ));

    _onResize();


_fixViewportHeight();

CSS

html, body, .fullpage-wrapper 
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  overflow: hidden;

视口元标记

<meta name="viewport"
  content="width=device-width, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi">

也试过这个JS

window.addEventListener("resize", function()
  onResize();
);

function onResize()
  document.querySelector("html").style.height = window.innerHeight + "px"
 setTimeout(function()$(window).scrollTop(0), 1000);
;

onResize();

想知道我在某处看到的这个脚本是否可以工作 - 但我不确定如何正确实现它。

FB.Canvas.getPageInfo(
    function(info) 
        alert('Width: ' + info.clientWidth + ' Height: ' + info.clientHeight);
    
);

https://developers.facebook.com/docs/reference/javascript/FB.Canvas.getPageInfo/

有人可以帮我解决这个问题吗,我现在会雇人。

它应该是什么样子

Facebook 浏览器裁剪/截断的内容。

【问题讨论】:

“想知道我在某处看到的这个脚本是否可以工作” - 不;这是针对 Canvas 应用程序的,而您的则不是。 // 有什么理由首先需要任何 JS 干预?这些设备上是否发生了任何调整大小事件? @CBroe 啊谢谢!因为 Facebook 和其他社交浏览器似乎没有在视口高度中计算其页眉/页脚。调整大小事件是页眉和页脚进入屏幕/视口 @alcoven 你有没有找到解决这个问题的方法? 你有没有试过让一个元素达到 100% 高度,然后测量它的有效高度? 【参考方案1】:

这是不特定于“预览”浏览器的视口的常见问题

我发现https://github.com/rodneyrehm/viewport-units-buggyfill 非常有效。您只需要包含 .js 文件并对其进行初始化

viewportUnitsBuggyfill.init(
  force: true, // use for debug on desktop
  refreshDebounceWait: 300 // good for performance
);

【讨论】:

也许你应该解释一下这个 buggyfill(包含许多针对不同问题的修复)如何解决这个特定问题。我会很有帮助的!

以上是关于Facebook、Instagram 和 Twitter 浏览器未返回正确的视口高度的主要内容,如果未能解决你的问题,请参考以下文章

Facebook、Instagram 和 Twitter 浏览器未返回正确的视口高度

没有 Facebook 登录的用户 Instagram Graph API

Instagram 找不到在 Facebook 或 Foursquare 上创建的位置

Facebook SDK不会返回Instagram媒体

如何为 Instagram 基本显示 API 实现 Instagram 或 Facebook 登录按钮的继续?

Facebook App Review instagram_basic 未正确测试