IE浏览器不兼容JavaScript

c# aspx里
<script type="text/javascript" language="javascript">
function setvalue(id, defaultValue) {
var epsd = document.getElementById(id);
if (epsd == null || epsd.value == defaultValue || epsd.value == '') {
epsd.type = "text";
epsd.value = defaultValue;
}
else {
epsd.type = "password";
}
}
</script>

<asp:TextBox ID="txtPassword" runat="server" CssClass="qqinput" onkeyup="setvalue(this.id,'密码')"
onfocus="if(value=='密码'){this.style.color='#999';value=''}" onblur="if(value==''){this.style.color='#999';value='密码'};"
value="密码"></asp:TextBox>

在谷歌浏览器里好使。在IE8里不好使。
要实现的是:文本框默认显示的是“密码两个字”,当输入时,改变文本框的type使它变成密码框。
该怎么让JavaScript在IE里好使。

  首先IE本身就是支持JavaScript的。
  1、可能想要说的是不支持某些特性,这是正常的。浏览器兼容性一直都是web开发的一大难题,不过w3c的HTML5之后好了很多。要是想知道在IE中某些js脚本怎么写它才认识,那可能要费一些功夫去查阅一下了。
  2、如果浏览器版本特别落后,如IE6等非常旧的浏览器,那么不支持的js特性可能会特别多,建议先升级浏览器。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-29
在IE下,input 标签的type属性是只读的,就是说不能改变。其它浏览器可以改。
你可以考虑用两个input, 一个text,一个password,
先显示text,隐藏password
当text得到焦点后,text隐藏,password显示。
当password失去焦点时,如果 password=="" ,则显示text,否则显示password追问

嗯,有点这个意思,你能做那个QQ邮箱登录页面
https://mail.qq.com/cgi-bin/loginpage? 里那个样子的密码输入框吗。

追答

他的代码是这样的,其实很简单,就是把label与密码输入框重叠,label在上面,label设置了for属性,所以当点击到label的文字时,焦点还是会定位到密码框。当密码框不为空时,label显示,否则隐藏。

追问

怎么让label在密码框上面啊,就是摞在一起的

追答

label 的css 设置posistion:absolute,然后能过过margin来定位

本回答被提问者采纳
第2个回答  2012-02-29
先在本地确保IE兼容JS:打开IE--“工具”--“Internet 选项”--“高级”--勾选“允许活动内容在我的计算机上的文件中运行”,并“应用”、“确定”。 很多情况下上传到服务器浏览者不需做这些设置就可以兼容此JS,不放心你可以传到服务器后,改回设置前的状态自己测试一下。
第3个回答  2012-03-01
function addEvent(elem, type, fn) {
if (elem.attachEvent) {
elem.attachEvent('on' + type, fn);//只支持IE
return;
}
if (elem.addEventListener) {
elem.addEventListener(type, fn, false);//其他浏览器
}
}

var myTxt = document.getElementById('txtPassword');
addEvent(myTxt , 'click', function(){
e = e || window.event;
var targetNode = e.target || e.srcElement;
});

试一下这样!追问

没有看懂啊、没有试出来效果

第4个回答  2012-03-02
学习学习
相似回答