JavaScript中是否有点击锚点的方法

时间:2010-04-23 21:12:11

标签: javascript

在JavaScript中是否存在模拟用户点击锚点的内容?

Mozilla(Firefox)没有实现这一点。 https://developer.mozilla.org/en/DOM/element.click

但是有没有浏览器呢?

5 个答案:

答案 0 :(得分:1)

  

在JavaScript中是否存在模拟用户点击锚点的内容?

click()函数不应导航到链接的href。 jQuery的一个也没有。但是,click()函数会触发附加到click事件/ onclick属性的所有函数。要将窗口位置更改为链接href,请执行

window.location = linkElement.href;

你甚至可以更进一步:

<script>
    function navigate(link) {
        window.location = link.href;
    }
</script>

<p><a id="link" href="http://google.com" onclick="navigate(this)">link</a>

<script>
    document.getElementById("link").click();
</script>
  

但是有没有浏览器呢?

MSIE(不正确)。

答案 1 :(得分:0)

我不知道是否有任何浏览器会支持这种行为,但你可以做一个“setTimeOut”,给定几秒钟你可以运行一个函数来触发任何可能或者可能有点击事件的函数它

但是,某些东西需要触发初始函数,即使它是“onLoad”事件。

答案 2 :(得分:0)

我建议使用jquery绑定事件,然后以编程方式使用jquery单击它们。但是,如果你不能包含jquery:

function AnchorClick(anchorId) 
{     
    var elem = document.getElementById(anchorId); 
    if (elem.onclick!=null)
    {
        elem.onclick();
    }
    else
    if ((elem.href!=null) && (elem.href!=""))
    {            
        var matches = /^javascript:(.+)$/.exec(elem.href); 
        if ((matches!=null) && (matches.length>1)) 
        { 
            // the href is a javascript snippet, execute it                                           
            var tempUndefined;
            var script = "({func:function(){"+matches[1]+"}})";                                
            var json = eval(script);
            elem.tempFunc = json.func; // set the eval'd function on the item itself so it will be executed with the correct scope
            elem.tempFunc();
            elem.tempFunc = tempUndefined; // eliminate the temp function
        } 
        else 
        { 
            // the href wasnt a javascript snippet, just navigate to the href 
            window.location = elem.href;  
        }
    }        
}

已编辑:以上功能已更新,现在保留了任何href =“javascript:”脚本处理程序的范围,并支持以下任何锚格式:

  • 锚定常规脚本onclick =“”属性。请注意,href =“javascript:void(0)”是这样,链接将呈现为可聚焦,这样除了使用鼠标之外,禁用的用户还可以使用Tab键导航到并按Enter以导致单击操作: / p>

    &lt; a href =“javascript:void(0)”onclick =“dostuff();”&gt; fooContent&lt; / a&gt;

  • 用javascript href锚定

    &lt; a href =“javascript:dostuff();”&gt; fooContent&lt; / a&gt;

  • 锚定正常导航链接

    &lt; a href =“http://www.yahoo.com”&gt; fooContent&lt; / a&gt;

答案 3 :(得分:0)

尝试:

window.location = document.getElementById('myAnchorId').href;

这将导致页面导航到href。

<a href="myAnchorId" href="www.mysite.com">Test</a>

答案 4 :(得分:-1)

$('#suchandsuch').click();

这不适合你吗?