V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
lslqtz
V2EX  ›  JavaScript

用 JavaScript,使 Safari 自动播放时出现了小问题。

  •  
  •   lslqtz · 2016-05-30 18:21:55 +08:00 · 2153 次点击
    这是一个创建于 2880 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <script>
    function SafariAutoPlay() {
    music.load();
    music.play();
    }
    var music=document.getElementById('music');
    window.addEventListener('touchstart',SafariAutoPlay,false);
    SafariAutoPlay.addEventListener('play',function() {
    window.removeEventListener('touchstart',SafariAutoPlay,false);
    },false);
    </script>
    使用以上代码,在非 Safari 时会报这么一个错:
    Uncaught TypeError: SafariAutoPlay.addEventListener is not a function 。
    怎样使其不报错?我尝试使用判断 UA 的方式,但是发现在手机上直接不播放了。
    5 条回复    2016-05-30 18:31:47 +08:00
    cute
        1
    cute  
       2016-05-30 18:26:17 +08:00   ❤️ 1
    SafariAutoPlay.addEventListener('play'
    应该是
    music.addEventListener('play'
    吧?
    lslqtz
        2
    lslqtz  
    OP
       2016-05-30 18:28:31 +08:00 via iPhone
    @cute 我是参考了这里来改,这里的也没有判断。
    https://m.douban.com/note/527250492/
    lslqtz
        3
    lslqtz  
    OP
       2016-05-30 18:30:02 +08:00 via iPhone
    @cute 不过手机细看了下,估计有效,感谢。
    cute
        4
    cute  
       2016-05-30 18:31:23 +08:00   ❤️ 1
    你的代码写错了
    lslqtz
        5
    lslqtz  
    OP
       2016-05-30 18:31:47 +08:00 via iPhone
    话说,这段代码不判断 UA 的话对其他浏览器有什么影响?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5383 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:03 · PVG 14:03 · LAX 23:03 · JFK 02:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.