锚标记中的Onclick事件在IE10中不起作用

时间:2013-04-22 14:03:09

标签: javascript onclick anchor internet-explorer-10

我是Asp.Net用户控件中的锚点。我已将一些代码连接到onclick事件。出于某种原因,在Internet Explorer 10中,事件未触发。标记结构为

<a href="#" id="myAnchor" onclick="myFunction();return false;"></a> 

其中myFunction是一个简单的JavaScript函数。对于那些想要查看页面的人,请点击以下链接:

http://alt.thedominion.ca/TheBrokerAdvantage/LocateABroker.aspx

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

以下代码适用于所有主流浏览器(我刚刚在IE10,IE9,Chrome 26.0.1410.64以及最新的firefox版本上测试过。)

<a href="#" id="myAnchor" onclick="myFunction();return false;">click me</a> 

<script type="text/javascript">
function myFunction(){
    alert("Anchor was clicked");
}
</script>

换句话说,你的语法很好,但是除非你使用CSS强制宽度和高度,否则锚标签根本不会出现没有内部文本。

CSS选项:

a{
    display: block;
    width: 100px;
    height: 20px;
}

Working CSS Example

答案 1 :(得分:1)

问题在于您的服务器端代码,而不是浏览器或JavaScript。

如果您在IE10中检查JavaScript控制台,则在单击链接时会看到以下错误:

  

SCRIPT5009:'ValidatorValidate'未定义

指向函数中的第二行:

function doSearch() {
    var regExValidate = document.getElementById("ctl00_BrokerSearchMiddle_ctl00_ValidPostalCode");
    ValidatorValidate(regExValidate);

    var postalCode = $find("ctl00_BrokerSearchMiddle_ctl00_PostalCode").get_value();

    if (regExValidate.isvalid && postalCode.indexOf("e.g") == -1) {
        document.location.href = "?postalCode=" + postalCode;
    }
}

这意味着onclick工作得很好,你只是有JS错误。

现在的问题是为什么ValidatorValidate存在于其他浏览器(甚至是IE9)中,而不是IE10中。好吧,在IE10中没有包含the script where it's being defined,这意味着服务器永远不会将带有该URL的行<script src="...">作为输出的一部分放到浏览器中。

我只能猜测服务器端代码正在检查浏览器版本,并根据包括某些脚本。检查代码并摆脱这些事情,因为它永远不是一个好主意。

经过一番研究后,我发现了正在发生的事情。您使用Sitefinity版本3.7来构建您的网站(根据this question of yours)和正式stated here

  

我想通知您,遗憾的是Sitefinity 3.7不支持Internet Explorer 10,并且您的Sitefinity 3.7可能无法正常使用此浏览器版本。抱歉给您带来的不便

如果您需要IE10支持,则必须升级您的Sitefinity。