【发布时间】:2015-06-11 05:08:42
【问题描述】:
我正在处理gwt。我写了一段代码来显示一个弹出窗口,这个弹出窗口发生得非常好,它会在 5 秒后自动运行,如果有人点击弹出窗口,那么它将一直停留到用户点击弹出窗口外部(点击 html 正文)。
整个功能正常工作,但它消失后会报错
错误是
未捕获的 TypeError:无法读取 null 的属性“removeChild”
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";
}
}
}
}
【问题讨论】:
标签: javascript gwt removechild jsni