我正在使用jQuery和Ajax构建动态网站。我已经使用历史记录插件解决了历史记录和后退按钮的问题。我想在URL中传递多个像参数一样的哈希值,而不用在单击事件时重新加载整个页面。我想要类似的东西:

  • something.php#type=abc&id=123
  • something.php/?type=abc&id=123 ...

  • 哪一种是在URL中传递和检索此类参数的最佳方法?
    <a href="#type=abc&id=123">Click</a>
    
    if(type==abc && id==123)
    {
        do this..
    }
    

    通常,我们使用<a href="something.php?type=abc&id=123">Click</a>来执行此操作,但是它将重新加载整个页面。

    最佳答案

    哈希值在技术上允许在其中使用有限的字符集。如果您在此处查看URL spec,则哈希值称为fragmentid。这是它可以包含的语法:

    碎片xalphas
    xalphas xalpha [xalphas]
    xalpha alpha |数字|安全|额外|逃脱
    保险柜$ | -| _ | @ | 。 | &| + | --
    额外的 ! | * | “|'|(|)|,
    转义%hex hex
    alpha a | b | c | d | e | f |克| h |我j | k |
    l |米| n | o | p | q | r | s | t |你v |
    w | x | y | z | A | B | C | D | E | F | G |
    H |我J | K | L | M | N | O | P |问| R |
    S | T | U | V | W | X | Y | ž
    数字0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

    您会注意到,可以使用&,但不能使用=,除非在设置或检索哈希值时在该哈希值上调用encodeURIComponent和encodeURIComponent。

    至于使用哪种技术,则完全取决于您。如果需要在哈希值中表示多个参数,则可以在哈希值中使用自己的小语法。我个人可能会用&分隔值,就像在查询字符串中一样,但是使用-而不是=

    关于jquery - 在网址中传递多个像参数一样的哈希值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7049191/

    10-13 01:37