JavaScript适用于IE,但不适用于Firefox

时间:2010-05-28 14:34:43

标签: javascript internet-explorer firefox firebug

同样老旧,我的javascript在IE中运行良好,但在Firefox中运行不正常。我已经按照所有表格,检查了所有的论坛和回复,以及我已编码的应该工作,但事实并非如此。 Firebug将值显示为“未定义”。

这就是我所得到的;它从一个更大的应用程序缩小,但它显示了同样的问题:

<html>
<head>
<script type="text/javascript">
function show_alert(evt)
{
if( !evt )
    evt = window.event;

var eSrc;
if( evt.srcElement )
    eSrc = evt.srcElement;
else
    eSrc = evt.target;

if( eSrc.tableisloaded == "showAlert" ) 
    alert("alert box: " + eSrc.name + "|" + eSrc.type);
}

</script>
</head>
<body>

<input type="button" name="clickme" tableisloaded="showAlert"
 onclick="show_alert(event);" value="Show alert box" />

 </body>
</html>

当我在IE中运行时,我收到警报,这意味着它正在查找“tableisloaded”参数。 Firebug并没有显示出一切。

那么我做错了什么,是否有办法获取参数?我需要将其更改为参数(onclick="show_alert(event,"showAlert");)吗?我希望不要因为它需要重写大量代码。

由于

2 个答案:

答案 0 :(得分:11)

尝试eSrc.getAttribute("tableisloaded")

此外,如果你想要时髦和时髦,你可以考虑让你的页面HTML5并调用你的额外属性“data-tableIsloaded”。这样它就会验证。

答案 1 :(得分:0)

<!doctype html>
<html lang="en">
<head>
<meta charset= "utf-8">    
<title>Added attributes</title>
<script type="text/javascript">

function show_alert(evt){
    evt= window.event || evt;
    var eSrc= evt.srcElement || evt.target; 
    if(eSrc.getAttribute('data-tableisloaded')== "showAlert"){
        alert("alert box: " + eSrc.name + "|" + eSrc.type);
    }
}
onload=function(){
    document.getElementsByName('clickme')[0].onclick=show_alert;
}

</script>
</head>
<body>

<input type="button" name="clickme" data-tableisloaded="showAlert" 
value="Show alert box" >

</body>
</html>
当我还在打字的时候,我正在回答,我给了他一个upvote- 但这就是他说的......