我在Asp.Net用户控件中有一个定位点。我已经将一些代码连接到onclick事件。由于Internet Explorer 10中的某些原因,该事件未触发。标记的结构为

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


其中myFunction是一个简单的JavaScript函数。对于那些想要查看实际页面的人,这里是链接:

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

任何帮助是极大的赞赏!

最佳答案

问题出在服务器端代码,而不是浏览器或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。

09-07 13:15