【问题标题】:Is it possible to trigger a javascript to run when a particular anchor is selected?选择特定锚时是否可以触发 javascript 运行?
【发布时间】:2011-02-01 21:33:13
【问题描述】:

假设我在这样的网页上有一个锚点:

<a name="comegetit"></a>

如果页面是通过位于此锚点上的链接到达的,是否有运行 javascript 的方法? (例如,&lt;a href="http://myawesomewebpage.com/page#comegetit"&gt;&lt;/a&gt; 之类的链接)。我不认为有,但我希望有。

【问题讨论】:

    标签: javascript html anchor hyperlink


    【解决方案1】:

    如果您只希望这一个字符串作为 URL 锚点:

    if(window.location.hash == '#comegetit'){
      // Do your stuff.
    }
    

    如果您正在做其他复杂的事情,您还可以将window.location.hash 与正则表达式进行匹配。

    【讨论】:

    • 哈希值返回#。 (即“#comegetit”)
    【解决方案2】:

    我使用真正简单的历史记录 (http://code.google.com/p/reallysimplehistory/)

    然后,在我的代码中,我会这样做:

    window.dhtmlHistory.create();
    window.dhtmlHistory.initialize();   
    window.dhtmlHistory.addListener(function(hash){
        // this is where you process your hash and do something special
        // and totally funky
    });
    

    这甚至会在初始页面加载时触发,如果您碰巧为哈希标签或诸如此类的东西添加书签。

    非常有用,并且抽象出所有浏览器特定的 B.S. window.location.hash 自带的

    乔什

    【讨论】:

    • 谢谢。我现在将使用简单的 window.location.hash 解决方案,看看我是否遇到问题。我今天不想学习另一个图书馆。
    【解决方案3】:

    您可以尝试处理 onload 事件并检查 window.location 内容以提取片段标识符...它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多