使用javascript附加主url刷新页面无效
我在一个页面上有一个视频列表,当我点击视频图标时,我会在同一页面上播放每个视频,我的示例页面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 =
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]);
我已经找到了解决办法,无论如何,谢谢你,因为这是正确的答案。