如何完全禁用YouTube iframe全屏显示? -YouTube iframe API

时间:2018-12-29 15:02:15

标签: javascript youtube-iframe-api

我已经在创建YouTube播放器了

playerVars: {
    controls: 0,
    fs: 0,
    disablekb: 1
}

但双击时,尽管会暂停然后继续播放,但仍会进入全屏模式。因此,如果我只能禁用全屏部分,那就可以了。

(怎么可能)?

2 个答案:

答案 0 :(得分:2)

在iframe中,您可以放置​​donotallowfullscreen

<iframe src="https://www.youtube.com/embed/test"  donotallowfullscreen>
</iframe>

答案 1 :(得分:0)

通过自己创建iframe,我设法解决了该问题。 这是代码:

const createYtPlayer = (videoId, container = inv) => new Promise(resolve => {
    const el = document.createElement('iframe');
    el.frameBorder = 0;
    el.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');
    el.setAttribute('donotallowfullscreen', '');
    el.src = 'https://www.youtube.com/embed/' + videoId + '?disablekb=1&enablejsapi=1&controls=0&origin=' + encodeURIComponent(window.origin);
    container.appendChild(el);

    const player = new YT.Player(el, {
        height: 200,
        width: 200,
        videoId,
        playerVars: {
            controls: 0,
            fs: 0,
            disablekb: 1
        },
        events: {
            'onReady': () => {
                setBestSoundQuality(player);
                player.setVolume(100);
                resolve(player);
            }
        }
    });
});

})();


旧答案:

原来,这可能是一个错误。我在@Paul Fitzgerald的答案的帮助下做了一个变通方法,因为那样可以。

由于某种原因,如果以任何方式存在allowfullscreen,则donotallowfullscreen属性无效(并且allowfullscreen会自动添加)。

所以我添加了

const iframe = player.getIframe();
iframe.removeAttribute('allowfullscreen');
iframe.setAttribute('donotallowfullscreen', '');

到onReady事件,它可以正常工作。

编辑:它似乎只能在Firefox中使用。