2016-10-25 6 views
3

Не удалось выполнить «RemoveChild» на «» Node: Узел, который будет удален не является дочерним этого узла.Uncaught DOMException: Не удалось выполнить «RemoveChild» на «Node»

Я получаю сообщение об ошибке при выполнении этого кода ниже. Есть ли способы решить эту проблему?

function clickLinks(links) { 
    for(var item in links) { 
     var anchor = document.createElement("a"); 

     anchor.target = "_blank"; 
     anchor.href = links[item]; 

     document.body.appendChild(anchor); 
     window.setTimeout(function() { 
     anchor.dispatchEvent(new MouseEvent("click",{ 
       "bubbles" : true, 
       "cancelable" : true, 
       "view"  : window 
      })); 


      window.setTimeout(function() { 
       document.body.removeChild(anchor); 
      }, 50); 
     }, 50); 
    } 
    } 

ответ

2

Вам нужно создать укупорочное для переменной якорной вы используете для того, чтобы убедиться, что он не будет перезаписана в следующей итерации для цикла.

function clickLinks(links) { 
for(var item in links) { 
    var anchor = document.createElement("a"); 

    anchor.target = "_blank"; 
    anchor.href = links[item]; 

    document.body.appendChild(anchor); 
    (function iifeclosure(anchor){ 
    window.setTimeout(function() { 
    anchor.dispatchEvent(new MouseEvent("click",{ 
      "bubbles" : true, 
      "cancelable" : true, 
      "view"  : window 
     })); 


     window.setTimeout(function() { 
      document.body.removeChild(anchor); 
     }, 50); 
    }, 50); 
    })(anchor); 
} 
} 
Смежные вопросы