Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在jsni中读取null的属性removeChild_Javascript_Gwt_Removechild_Jsni - Fatal编程技术网

Javascript 无法在jsni中读取null的属性removeChild

Javascript 无法在jsni中读取null的属性removeChild,javascript,gwt,removechild,jsni,Javascript,Gwt,Removechild,Jsni,我正在从事gwt的工作。我写了一段代码来显示一个弹出窗口,这个弹出窗口发生得非常好,它会在5秒后自动运行,如果有人点击弹出窗口,它会一直保持到用户点击弹出窗口之外(点击html主体) 整个功能正常工作,但在消失后会出现错误 错误是 未捕获类型错误:无法读取null的属性“removeChild” 如果您在弹出窗口外单击两次,则将调用两次hideDelayTimer,第二次sm将没有父节点 您每次检查sm是否为空,但从不将其设置为空;这可能是这里的问题:将其从父节点中删除后将其设置为null(我相

我正在从事gwt的工作。我写了一段代码来显示一个弹出窗口,这个弹出窗口发生得非常好,它会在5秒后自动运行,如果有人点击弹出窗口,它会一直保持到用户点击弹出窗口之外(点击html主体)

整个功能正常工作,但在消失后会出现错误

错误是

未捕获类型错误:无法读取null的属性“removeChild”


如果您在弹出窗口外单击两次,则将调用两次
hideDelayTimer
,第二次
sm
将没有父节点


您每次检查
sm
是否为空,但从不将其设置为空;这可能是这里的问题:将其从父节点中删除后将其设置为null(我相信您可以更好地处理事件)。

如果您在弹出窗口外单击两次,则将调用两次
HideLayTimer
,第二次
sm
将没有父节点

您每次检查
sm
是否为空,但从不将其设置为空;这可能是这里的问题:在将其从父节点移除后将其设置为null(我相信您可以在事件处理方面做得更好)

public static void popupError(){

    var sr,sm,mb1;

    sr=$doc.getElementById('errorpopup');
    sr.innerHTML="";

    sm=$doc.createElement("div");
    sm.className="greyout";
    sm.setAttribute("style","margin-bottom: 10px;");

    mb1=$doc.createElement("div");
    mb1.className="mob-maskbody";

        var rightside = $doc.createElement("div");
        rightside.className="pad10";

            var errortext= $doc.createElement("div");
            errortext.className="nh6 center bold";
            errortext.innerHTML=error;

            rightside.appendChild(errortext);

    mb1.appendChild(rightside);

    sm.appendChild(mb1);
    sr.appendChild(sm);

    fadding();

    $doc.body.onclick = function()
    {
        fadding();
    }

    function fadding()
    {
        if(sr.childNodes[0]!=null || sm!=null)
        {
            var hideFadeTimer;
            var hideDelayTimer;

            hideFadeTimer = setTimeout(function()
            {
                if(sm!=null){
                    sm.className="greydout";
                }
            },2500);

            hideDelayTimer = setTimeout(function()
            {
                if(sm!=null){
                    sm.parentNode.removeChild(sm);

                    hideFadeTimer = null;
                    hideDelayTimer = null;
                    $doc.body.onclick = null;
                }
            },5000);

            sm.onclick = function(event)
            {
                event.stopPropagation();

                if(hideDelayTimer)
                {
                    clearTimeout(hideDelayTimer);
                }
                if(hideFadeTimer)
                {
                    clearTimeout(hideFadeTimer);
                }
                sm.className="greyout";
            }
        }
    }
}