标签: visibilitychange

在 Chrome 中 window.open 之后 Visibility API 不起作用

我试图使用 Visibility API,但它不适用于孩子。重现的最小示例:

<script>

document.onvisibilitychange = () => {
      console.log(document.visibilityState);
    }

if (!window.opener) {
    window.open(window.location.href, '_blank');
}

</script>
Run Code Online (Sandbox Code Playgroud)

之后,父窗口仍然打印“可见”-“隐藏”,但子窗口仅在刷新时打印一次“隐藏”。

它可以在最新的 Opera 浏览器中正常工作,但不能在 Chrome 中正常工作

老实说,当我来到这个最小复制时,我被卡住了,不知道在哪里挖掘。任何想法可能是错误的?

javascript google-chrome visibilitychange

7
推荐指数
1
解决办法
332
查看次数

浏览器关闭不会触发 safari 上的可见性变化

我试图在用户关闭浏览器时保存一些统计信息,下面是代码

    if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support
      hidden = 'hidden';
      visibilityChange = 'visibilitychange';
    } else if (typeof document.mozHidden !== 'undefined') {
      hidden = 'mozHidden';
      visibilityChange = 'mozvisibilitychange';
    } else if (typeof document.msHidden !== "undefined") {
      hidden = 'msHidden';
      visibilityChange = 'msvisibilitychange';
    } else if (typeof document.webkitHidden !== 'undefined') {
      hidden = 'webkitHidden';
      visibilityChange = 'webkitvisibilitychange';
    } else {
      console.log('in else condition');
    }

if (typeof document.addEventListener === 'undefined' || hidden === undefined) …
Run Code Online (Sandbox Code Playgroud)

javascript safari jquery visibilitychange

5
推荐指数
1
解决办法
634
查看次数

文档可见性变化与窗口模糊/焦点,有什么区别,何时使用哪个?

在 ECMAscript (=Javascript) 中有两种方法可以检查用户是否离开您的页面。您可以在 上侦听“ visibilitychange”事件,document也可以在 上侦听“ blur”和“ focus”事件window。它们之间有区别吗?

navigation onfocus onblur dom-events visibilitychange

5
推荐指数
1
解决办法
1661
查看次数

当 document.hidden 为 true 时,不会在 Chrome 中触发滚动事件。任何解决方法?

尽管页面实际上在滚动,但当页面隐藏时,Chrome 永远不会触发滚动事件。这看起来像是他们为减少不可见页面的 CPU 和网络使用而实施的。

有没有办法解决这种行为,即使使用 Chrome 的标志或扩展程序?我需要触发“滚动”事件,因为这就是我正在测试的。

setInterval(() => {
    window.scrollBy(0, 100);
    // scrolls indefinitely even when the page is hidden
}, 1000);

addEventListener("scroll", () => {
    console.log("scroll " + document.documentElement.scrollTop);
    // however, this gets fired only if document.hidden is false
});

Run Code Online (Sandbox Code Playgroud)

javascript dom google-chrome visibilitychange

5
推荐指数
1
解决办法
67
查看次数

起初,默认时间栏在超时后消失,然后在超时后,Exoplayer 的完全控制器消失

如图和视频所示,我在使用样式化播放器视图时遇到问题。

我已将controllerShowTimeoutMs 设置为2 秒,但我得到的结果如下图所示... 点击查看图片

或者如本视频中... YouTube 链接

当控制器在 2 秒内没有收到任何输入时,播放器的默认时间栏的可见性将会更改。

2 秒后,所有控件的可见性再次发生变化。

我想让所有控件在两秒钟内同时消失。

我尝试检查很多事情,但找不到问题的原因......

下面是 Exoplayer 的 XML 代码

   <com.google.android.exoplayer2.ui.StyledPlayerView
    android:id="@+id/home_exoplayer_view"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:controller_layout_id="@layout/exo_control_layout_main"
    app:layout_constraintDimensionRatio="16:9"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:shutter_background_color="?colorTextBackgroundBlack"
    app:use_controller="true"
    app:show_buffering="always"
    app:player_layout_id="@layout/exo_player_layout_main"
    />
Run Code Online (Sandbox Code Playgroud)

而在我的片段中

//Autohide controller in below Mili seconds unless the user taps
        exoPlayerView.controllerShowTimeoutMs = 2000

//Don't show controller when playback starts
        exoPlayerView.controllerAutoShow = false
Run Code Online (Sandbox Code Playgroud)

video android exoplayer visibilitychange exoplayer2.x

3
推荐指数
1
解决办法
1315
查看次数

使用javascript单击新标签时如何暂停视频?

我正在处理视频 HTML 标签,我想在新标签打开时暂停音频。请帮助解决这个问题。

<video autoplay onplay="clickplayer()" id="player" onended="endplayer()" fullscreen="true" controls onvolumechange="myFunction()"  ontimeupdate="document.getElementById('tracktime').innerHTML = Math.floor(this.currentTime) + ' / ' + Math.floor(this.duration);">dik</video>
Run Code Online (Sandbox Code Playgroud)

html javascript html5-video visibilitychange

1
推荐指数
1
解决办法
2767
查看次数