使用javascript附加主url刷新页面无效

使用javascript附加主url刷新页面无效,javascript,jquery,html,Javascript,Jquery,Html,我在一个页面上有一个视频列表,当我点击视频图标时,我会在同一页面上播放每个视频,我的示例页面url如下 www.xyz.com/video/ 现在,我必须以这样一种方式附加url:当用户单击视频图标时,它还应该在同一页面上播放相应的视频,并将url更改为 www.xyz.com/video/XhskwaJS不刷新页面。这背后的逻辑是共享,让用户能够共享每个视频,而不是主视频页面,其中列出了几个视频 我在事件单击中使用了以下代码来提取VideoID并尝试将其附加到主URL var regExp =

我在一个页面上有一个视频列表,当我点击视频图标时,我会在同一页面上播放每个视频,我的示例页面url如下

www.xyz.com/video/

现在,我必须以这样一种方式附加url:当用户单击视频图标时,它还应该在同一页面上播放相应的视频,并将url更改为

www.xyz.com/video/XhskwaJS
不刷新页面。这背后的逻辑是共享,让用户能够共享每个视频,而不是主视频页面,其中列出了几个视频

我在事件单击中使用了以下代码来提取VideoID并尝试将其附加到主URL

var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var URL = 'http://www.youtube.com/embed/Se1y2R5QRKU?showinfo=0&modestbranding=1'              
var match = URL.match(regExp);
                if (match && match[7].length == 11) {
                    //console.log(match[7]);
                    location.href = $(this).attr('href') + match[7];
                    return match[7];
                } else {
                    //alert("Could not extract video ID.");
                }

您的正则表达式在应用于
youtube.com
地址时将不匹配,因为它需要
youtu.be

也许您可以通过指定一种可选的嵌入和监视URL来简化正则表达式

^[^?]+/embed/([^?]+)\?
^[^?]+/watch\?v=([^&]+)
最后,不要设置触发刷新的
location.href
,而是使用html5历史api并编写

window.history.replaceState('Object', 'Title', $(this).attr('href') + match[7]);

我已经找到了解决办法,无论如何,谢谢你,因为这是正确的答案。