Play Video on Homepage Only

时间:2017-06-26 作者:The Chewy

我在我的主页上运行了一段视频,我在下面添加了JavaScript,以确保它能够播放/循环等,一切正常。

然而,在站点的其他页面上,javascript有效地破坏并影响了站点的功能。当我在控制台中查看时,我收到一条消息,说“cannot ready property”“play”为null。

代码仅选择打开的视频元素。但是page-id-36,那么JS为什么要在其他页面上查找元素呢?

代码为:

var imagineVideo = document.querySelector(\'.page-id-36 .et_pb_video_box video\');
  imagineVideo.play();
  imagineVideo.loop = true;
  imagineVideo.controls = false;
任何帮助/提示都会很好。

艾米丽

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

querySelector() 退货null 如果找不到匹配项,请包装依赖于imagineVideo 在条件语句中。

var imagineVideo = document.querySelector(\'.page-id-36 .et_pb_video_box video\');
if ( imagineVideo ) {
  imagineVideo.play();
  imagineVideo.loop = true;
  imagineVideo.controls = false;
}
如果您只想在主页上加载此代码,则可以将其放在单独的文件中,并仅在查看主页时将其排队。例如,您可以将上面的代码放在{your-theme}/js/homepage-video.js. 然后将主视频播放器脚本和homepage-video.js:

add_action( \'wp_enqueue_scripts\', \'wpse_homepage_video_script\' );
function wpse_homepage_video_script() {
    if ( is_front_page() ) {

        // Enqueue the main video player.
        wp_enqueue_script(
            \'video-player\',
            get_stylesheet_directory_uri() . \'/js/video-player.js\',
            array(),
            null,
            true
        );

        // Enqueue the JS that controls the video on the homepage.
        wp_enqueue_script(
            \'wpse-homepage-video\',
            get_stylesheet_directory_uri() . \'/js/homepage-video.js\',
            array( \'video-player\' ),
            null,
            true
        );
    }
}

结束

相关推荐

将唯一类添加到HTML标记/元素

我知道WordPress有一个body\\u类函数。但是有没有一种(或一种方法)可以将类添加到HTML元素中呢?我的目标是能够向页面的HTML元素添加唯一的类(或ID)。目前,我的主题是将页面id XXXX类添加到body元素,但我需要一种在实际HTML元素上具有唯一类或id的方法。将页面id XXXX也添加到HTML元素中可能会更好,尽管我更希望能够在每个页面中添加一个自定义字段,在这里我可以键入类/id,然后将其添加到HTML元素中。至少,是否有一个函数可以用于向HTML元素添加类或ID,类似于bod