我是Asp.Net用户控件中的锚点。我已将一些代码连接到onclick事件。出于某种原因,在Internet Explorer 10中,事件未触发。标记结构为
<a href="#" id="myAnchor" onclick="myFunction();return false;"></a>
其中myFunction是一个简单的JavaScript函数。对于那些想要查看页面的人,请点击以下链接:
http://alt.thedominion.ca/TheBrokerAdvantage/LocateABroker.aspx
非常感谢任何帮助!
答案 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;
}
答案 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。