【问题标题】:What is a Object #<S> in javascript?javascript中的对象#<S>是什么?
【发布时间】:2013-10-09 07:52:59
【问题描述】:

我正在尝试通过 javascript api 播放 youtube 视频。

有一个名为

的 youtube-video-object
myytplayer.playVideo();

它是这样启动的:

function onYouTubeIframeAPIReady() {
new YT.Player('player', {
        height: '720',
        width: '1280',
        html5: 0,
        videoId: 'i8IXMGHpGBk',
        playerVars: {'modestbranding': 1, 'controls': 1,'showinfo': 0, 'rel': 0 },
        events: {
            'onStateChange': function(e) {
                if (e.data === 0) {
                    $('html, body').animate({
                        scrollTop: $(".quizwrapper").offset().top
                    }, 1000);
                    document.getElementById('first').focus();
                }
            }
        }
    });
}

有时,但并非总是如此,我会收到错误消息:

TypeError: Object #S> 没有方法“playVideo”。

if(myytplayer){
  myytplayer.playVideo();
}

Object #&lt;S&gt; 到底是什么意思?

【问题讨论】:

  • 你为什么要创建同样的问题:: stackoverflow.com/questions/19242186/… .. 你可以编辑前一个..?
  • 如果您在if(myytplayer) 行上设置断点并查看对象设置的内容,那么我想它不是您的对象并且需要初始化,这可能是异步加载的问题脚本或其他多种东西。告诉我
  • @Sudhir,实际上我认为我没有问过这个问题。
  • @abc123,你完全正确。我需要听 onPlayerReady()

标签: javascript


【解决方案1】:

快速解答

根据您使用的浏览器,控制台会显示Object#&lt;S&gt;,这实际上只是表示您的对象类型,因为 JavaScript 不是基于类的,它永远不会显示 myytplayer


解决方案

if(myytplayer){ 上的任何浏览器中设置断点将显示您的myytplayer 对象是undefined 或未初始化为您的类类型。这可能是由许多问题引起的。可能需要调用初始化程序来设置您的对象,如果这已经完成,那么您需要查看脚本加载并确保在执行代码之前加载您的 myytplayer 脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 2015-08-30
    相关资源
    最近更新 更多