【问题标题】:iPad' Safari 10 doesn't load Angular 5 app (works on Safari 11)iPad 的 Safari 10 不加载 Angular 5 应用程序(适用于 Safari 11)
【发布时间】:2018-03-29 18:52:03
【问题描述】:

我正在使用 Angular 5 部署 SPA 构建。 我在 Windows 所有最新版本的浏览器(即 chrome、firefox、edge)以及 Mac 上的 Safari 上进行了测试。

我无法让它在 Safari 10 上运行。

在将 iPad 的 Safari 连接到 Mac 的 Safari Inspector 时,我设法提取的调试消息下方。 ⇓⇓⇓⇓

【问题讨论】:

    标签: angular ipad safari


    【解决方案1】:

    不亚于 Paul Irish 先生有一个很棒的 polyfill,而且效果很好。它在这里相关,我不得不说它有点旧,但技术上足够了:https://gist.github.com/paulirish/1579671

    为了清楚起见,我将它发布在我的 index.html 上,作为加载(不幸)每个浏览器等的基本脚本。

    (function() {
    
        var lastTime = 0;
    
        var vendors = ['ms', 'moz', 'webkit', 'o'];
    
        for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
    
            window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
    
            window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] 
    
                                       || window[vendors[x]+'CancelRequestAnimationFrame'];
    
        }
    
    
    
        if (!window.requestAnimationFrame)
    
            window.requestAnimationFrame = function(callback, element) {
    
                var currTime = new Date().getTime();
    
                var timeToCall = Math.max(0, 16 - (currTime - lastTime));
    
                var id = window.setTimeout(function() { callback(currTime + timeToCall); }, 
    
                  timeToCall);
    
                lastTime = currTime + timeToCall;
    
                return id;
    
            };
    
    
    
        if (!window.cancelAnimationFrame)
    
            window.cancelAnimationFrame = function(id) {
    
                clearTimeout(id);
    
            };
    
    }());
    

    【讨论】:

    • 任何有更多经验的人都可以确认:将此解决方案保留为问题的“答案”更好,还是我应该只是“更新问题”?
    • 我认为像你一样回答你自己的问题很好。感谢您回来更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多