0

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

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

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

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

任何帮助是极大的赞赏!

4

2 回答 2

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;
}

工作 CSS 示例

于 2013-04-22T14:24:02.640 回答
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中定义它的脚本不包括在内,这意味着服务器永远不会将<script src="...">带有该 URL 的行作为输出到浏览器的一部分。

我只能猜测服务器端代码正在检查浏览器版本,并据此包含某些脚本。检查该代码并摆脱这样的事情,因为它从来都不是一个好主意。

经过一番研究,我发现了发生了什么。您正在使用 Sitefinity 3.7 版来构建您的网站(根据您的这个问题),正如官方所述

我想通知您,很遗憾 Sitefinity 3.7 不支持 Internet Explorer 10,您的 Sitefinity 3.7 可能无法在此浏览器版本上正常工作。造成的不便,深表歉意

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

于 2013-04-22T14:44:14.690 回答