<a></a> <a> tag with javascript function on the href fails to run</a> </label> </label>中的<label> <label>标签

时间:2012-11-30 14:16:22

标签: javascript html internet-explorer text-to-speech

我在<label><label/>标记内有一个<A><A/>标记,<A>标记有一个调用JavaScript函数的href

在IE下运行时,JavaScript无法调用,但对我需要的其他所有内容也有效。

我知道这可能不正常,但我正在寻找一个语音阅读器快速修复一个非常古老的项目,所以不要深入了解原因,为什么不这样做。 :)

我已经搜索过,并且没有找到关于为什么这不起作用的参考,继承我的测试代码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Label and Links Test For Speech Readers</title>
</head>

<script language="javascript" type="text/javascript">
    function onHello()
    {
        alert("hello");
    }    
</script>

<body>
    <p><b>Label and Links Test For Speech Readers</b></p>
    <p>This is a test a patch to an historic application, Tested with Chrome, Firefox, IE & BlackBerry OS-6(similator)</p>
    <p>
        # TEST 1<br />
        <a href="javascript:onHello();">Hello1</a>
        <br />Current basic link style, that doesn't work with speech readers
    </p>
    <p>
        # TEST 2<br />
        <a href="javascript:onHello();"><label style="cursor:pointer">Hello2</label></a>
        <br />Easy fix, but this does not work for IE
    </p>
    <p>
        # TEST 3<br />
        <label onclick="javascript:onHello();" style="color: #0000ff; text-decoration: underline; cursor: pointer;">Hello3</label>
        <br />More work to fix, but compatible with all noted broswers
    </p>
</body>
</html>

5 个答案:

答案 0 :(得分:3)

出于安全原因,请勿在某些情况下在某些浏览器中禁用href中的Javascript。

使用onclick事件运行代码:

<a href="#" onclick="onHello();return false;"><label style="cursor:pointer">Hello2</label></a>

答案 1 :(得分:3)

我认为这是一个纯粹的语法问题。 标签旨在与表单一起使用,用户可以单击以与表单输入进行交互。

我理解你没有说“为什么”和“为什么不”但是在链接中使用标签绝对不是一个好主意...这不仅仅是标签内的标签,因为标签标签应该被点击,所以你有2个可以点击的标签。 IE似乎在您的示例中更加重视标签,因此它不会在链接中运行您的代码。

答案 2 :(得分:2)

您应该在onClick事件上运行javascript,不要将它放在href上(使用#或某些东西作为href)。

另外,如果您想阻止链接被跟踪,请不要忘记返回false; (或event.preventDefault())。 E.g。

       <a href="#" onClick="onHello(); return false;">Hello1</a>

答案 3 :(得分:1)

而是在onclick中使用in href

<a href='#' onclick="onHello(); return false;">Hello1</a>

答案 4 :(得分:1)

为什么不跳过a-tag,绑定标签上的javascript片段?

<label style="cursor:pointer" onclick="onHello();">Hello2</label>