使用主题标签

时间:2012-09-07 15:50:50

标签: javascript jquery url tags hashtag

让我们认为我们的网址看起来像

www.domain.com #CourseID#LessonID

我想做的是,在什么时候:

  • CourseDivButton点击了当前网址
    • 没有主题标签(www.domain.com),只需添加$(this).data("id")作为主题标签(www.domain.com #CourseID
    • 仅包含第一个#标签 - CourseID(www.domain.com #CourseID ),然后进行更改(www.domain.com #NEWCourseID
    • 包含2个主题标签 - CourseIDLessonID(www.domain.com #CourseID#LessonID )然后删除第二个并更改(www.domain.com #NEWCourseID
  • LessonDivButton点击了当前网址
    • 仅包含第一个#标签 - CourseID(www.domain.com #CourseID ),然后再添加第二个(www.domain.com #CourseID#LessonID
    • 包含2个主题标签 - CourseIDLessonID(www.domain.com #CourseID#LessonID )然后更改第二个并保持原样(www.domain。 com #CourseID#NEWLessonID

我的代码现在如下所示。无法弄清楚如何实现我想要的目标。

CourseDivButton.click(function(){
    var id=$(this).data("id");
    LoadLessons(id);
    window.location.hash = id;
});

LessonDivButton.live("click", function(){
    var id=$(this).data("id");
    LoadQuestions(id);
    window.location.hash = id;
});

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

不是使用主题标签,而是使用查询字符串?我建议你像这样添加它们:

www.domain.com?course=的 CourseID &安培;课= <强> LessonID

使用下面的javascript函数,您可以从URL中获取变量,如下所示:

var courseID = urlParam('course');
var lessonID = urlParam('lesson');

function urlParam(name) {
    /// <summary>
    /// Gets the value of a parameter located within the url.
    /// </summary>
    /// <param name="name">The paramter to lookup.</param>
    /// <returns type="string">The value of the requested parameter, or undefined if the parameter is not present.</returns>
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return undefined;
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}

如果您需要使用添加的查询字符串构建新网址check this out