gpt4 book ai didi

javascript 错误为 null 或不是对象

转载 作者:行者123 更新时间:2023-12-02 20:40:00 26 4
gpt4 key购买 nike

我正在尝试从 php 脚本打开一个窗口。但是当我点击时出现此错误

线路:389错误:“surgExpressBuildDefaultButton”为 null 或不是对象

第389行代码如下

function setupLayout(i)
{
document.body.onselectstart = function()
{
if (event.srcElement.tagName.search(/input|textarea/i)) return false;
}

setupButtons();
if(window.parent.opener.parent.frames[0].surgExpressBuildDefaultButton)
{
buttonClick(window.parent.opener.parent.frames[0].surgExpressBuildDefaultButton);
}
else
{
layout.buttons.commonButton.fixSelected();
}

for(i = 0; i < da.imgPlus.length; i++)
{
da.imgPlus[i].onclick = clickPlus;
da.imgMinus[i].onclick = clickMinus;
}

for(i = 0; i < da.spnName.length; i++)
{
da.spnName[i].selected = 0;
da.spnName[i].title = da.spnName[i].innerText;

da.spnName[i].onclick = function(){selectCommonProcedure(this);}
da.spnName[i].ondblclick = function(){addCommonProcedure(this);}

da.spnName[i].onmouseout = function(){this.className = (this.selected ? "nSelected" : "nOut");}
da.spnName[i].onmousedown = function(){this.className = "nDown";}
da.spnName[i].onmouseover = da.spnName[i].onmouseup = function(){this.className = "nOver";}
}

da.inpSearch.onkeydown = function(){if(event.keyCode == 13) updateProcedureList();}

da.btnSearch.onclick = da.selSpecialty.onchange = updateProcedureList;

da.btnClose.onclick = function(){window.close();}

da.btnAdd.disable = da.btnSave.disable = CC.Disable;
da.btnAdd.disable(1);
da.btnAdd.onclick = addCommonProcedure;
da.btnSave.disable(1);
da.btnSave.onclick = saveExpress;
}

可能是什么问题。有什么想法吗?

最佳答案

如果不知道这四打行中的哪一行是第 489 行,就很难判断,但这让我感到惊讶:

function setupLayout(i)
{
document.body.onselectstart = function()
{
if (event.srcElement.tagName.search(/input|textarea/i)) return false;
^-- here

您正在使用事件而没有声明它(至少在您引用的代码中没有声明)。在 IE 上,这会起作用,因为 IE 使事件对象成为 window 的属性(除非它们被其他声明隐藏,否则您可以访问 window 属性,而无需显式限定)它们),但在大多数其他浏览器上,事件对象是事件处理函数的参数 - 因此代码会尝试使用 未定义 值作为对象引用,这会准确触发您的错误消息又看到了。

处理浏览器中这种差异的常用习惯用法(除了使用像jQueryPrototype这样的库来为您处理它)是这样的:

document.body.onselectstart = function(event)
{
event = event || window.event;
// ...
};

该惯用语将事件声明为函数的参数,但随后让它回退到查看窗口(以支持 IE)。

关于javascript 错误为 null 或不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com