小编pst*_*ryk的帖子

Facebook应用内浏览器未执行javascript

TL; DR版本:

Facebook浏览器中的部分JS代码不会在每次页面重新加载时执行-仅在几次重新加载后才执行。

问题:如何使Facebook应用程序内浏览器在每次页面加载时执行所有JS代码?这实际上应该是正常行为-实际上,其他浏览器(尝试使用Chrome和Safari)每次重新加载页面时都会执行代码。

细节:

在我的网站上,我有一个与用户登录/注销有关的问题。调试过程使我到达了将测试代码放在开头的位置<head>,以便检查我的cookie是否存在。我遇到的问题仅发生在Facebook应用程序内浏览器上。

因此,我有以下示例代码:

    <!DOCTYPE html>
    <html lang="da">
        <head>
            <script>
                alert(document.cookie.match(/glt_.+?;/) || 'no glt_* cookie!');
            </script>
            <!-- other <script> tags here -->
        </head>

        <body>
        ...
        </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

重现此问题的步骤:

我在Facebook墙上使用此代码共享网址,然后转到iPhone 6s上的Facebook应用并点击链接;它会在应用内浏览器中打开。

现在,此代码应显示一个包含cookie或提示没有cookie的消息的警报。但是...根本没有警报。就像这alert部分代码不存在。

但是,刷新几次后,警报开始出现。并且,当它第一次出现时,它会在每次重新加载页面时一直出现,直到我点击“返回”按钮。然后,当我再次坐在墙上并再次点击链接时,整个情况重复出现-直到我刷新几次才发出警报。

对我来说,“未显示警告”基本上意味着“某些javascript未执行”-请让我知道如果我在这里输入错误,也许警报是在此浏览器中以特定方式处理的?其他JS(用户界面等)片段也可以正常工作。

到目前为止的调查:

在任何流行的浏览器上都不会发生此问题;每次都会显示警报。

另一件事:我杀死了Facebook应用程序(双击“主页”按钮以获取打开的应用程序列表,然后杀死Facebook)。然后,我重新打开Facebook,再次点击链接,然后...没有出现警报。我刷新了几次,最终出现了。

我还清除了应用程序设置中的浏览器缓存,但这并没有影响任何内容。

javascript facebook ios

6
推荐指数
0
解决办法
786
查看次数

标签 统计

facebook ×1

ios ×1

javascript ×1