如何更改JS形式以在Chrome / Firefox / Edge中返回“John Doe”而不是“undefined”?

How to change JS form to return 'John Doe' in Chrome/Firefox/Edge and not 'undefined'?

提问人:Marti 提问时间:4/23/2023 最后编辑:Marti 更新时间:4/23/2023 访问量:42

问:

我有一个旧的 JavaScript 表单,可以从 mySQL 数据库获取用户数据。 它在 IE11 中正确显示新客户的电子邮件、街道地址和名称,但在 Chrome/Firefox/Edge 中,名称显示为“未定义”。

我检查了进行浏览器检查的PHP代码:

...

<SCRIPT LANGUAGE='javascript'>
function checkBrowser(){ //Browsercheck (needed)
    this.ver=navigator.appVersion
    this.agent=navigator.userAgent
    this.dom=document.getElementById?1:0
    this.opera5=this.agent.indexOf('Opera 5')>-1
    this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
    this.ie5=(this.ver.indexOf('MSIE 5')>-1 && this.dom && !this.opera5)?1:0; 
    this.ie6=(this.ver.indexOf('MSIE 6')>-1 && this.dom && !this.opera5)?1:0;
    this.ie7=(this.ver.indexOf('MSIE 7')>-1 && this.dom && !this.opera5)?1:0;
    this.ie8=(this.ver.indexOf('MSIE 8')>-1 && this.dom && !this.opera5)?1:0;
    this.ie9=(this.ver.indexOf('MSIE 9')>-1 && this.dom && !this.opera5)?1:0;
    this.other=(this.ver.indexOf('U')>-1 && this.dom && !this.opera5)?1:0;
    this.ie=this.ie4||this.ie5||this.ie6||this.ie7||this.ie8||this.ie9||this.other
    this.mac=this.agent.indexOf('Mac')>-1
    this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.other || this.ie9 || this.ie8 || this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.opera6 || this.opera7 || this.opera8 || this.opera9)
    return this
}
bw=new checkBrowser();

再往下一点,我有这些行:

...

if(bw.ns4)
document.divMessage.document.input_form.name.value = name[current_id]; 

...

else
document.input_form.name.value = name[current_id];

...

不知道从哪里开始解决这个问题。

我想知道这是否可能是 Chrome 渲染引擎的问题而不是浏览器版本的问题,因为 IE 没有使用它,对吧?

JavaScript Google-chrome internet-explorer 未定义

评论

2赞 Rojo 4/23/2023
编辑您的帖子并包含一个最小的可重复示例

答: 暂无答案