“/”在onclick事件中从URL中删除

时间:2015-02-18 06:52:34

标签: javascript jquery

我使用url更改网页的当前window.history.replaceState()而不刷新页面。这样,当用户点击此页面上列出的视频并在同一页面中播放相同的视频时,我就可以附加到当前的url YouTube VideoID

我们假设样本urls是 -

默认视频页面 http://www.domain.com/video/ 用户点击视频网址更改后删除最后一个/

http://www.domain.com/video#Se1y2R5QRKU

我希望网址与/保持一致 http://www.domain.com/video/#wckLzQDTm6s

以下是我正在使用的脚本,但我不确定从/

中删除上一个url的内容
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = URL.match(regExp);
if (match && match[7].length == 11) {
    //console.log(match[7]);
    currentURL = document.URL;
    // alert(currentURL.slice(0, currentURL.lastIndexOf('#')));
    console.log(currentURL.slice(0, currentURL.indexOf('#')));
    var sliceURL = currentURL.slice(0, currentURL.indexOf('#'));
    var newURL = sliceURL + '#' + match[7];
    window.history.replaceState(null, "Video Gallery", newURL);
    return match[7];
} else {
    //alert("Could not extract video ID.");
}

1 个答案:

答案 0 :(得分:1)

因为currentURL最初不包含#,所以indexOf将返回-1,结果是将删除最后一个字符(斜杠)。在切片之前,您应该显式检查散列是否在currentURL中:

var hashIndex = currentURL.indexOf('#');
var sliceURL = (hashIndex != -1) ? currentURL.slice(0, hashIndex) : currentURL;