2015-10-05 2 views
1

Я создаю гибридное приложение Cordova. Я использую Facebookconnectplugin и показываю учебник при первом запуске. Это работает для каждой поддерживаемой Plattform и версии (Android/iOS), но не для Android 4.1. Здесь код разбивается на «Object # не имеет метода« remove ». Он прерывается все время на линии, когда я пытаюсь удалить div fadeMe. Как сказал работает и везде (Android 4.3+/IOS 7+)Объект # <HTMLDivElement> не имеет метода 'remove'

facebookConnectPlugin.login(["public_profile", "email", "user_friends"], 
    function (response) { 
     //check if this is startup then remove overlay 
     if(document.getElementById("fadeMe")){ 
      document.getElementById("fadeMe").remove();//document.body.removeChild(div); 
      describeTableView(); 
     } 
    } 
); 

CSS:

#fadeMe{ 
    background-color: rgba(0,0,0,.75); 
    width:  100%; 
    height:  100%; 
    z-index: 11; 
    top:  0; 
    left:  0; 
    position: fixed; 
    color: #ffffff; 
    padding-left: 20px; 
    padding-top: 20px; 
    font-size: 0.9em; 
    font-weight: 300; 

    webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */ 
     -moz-animation: fadein 2s; /* Firefox < 16 */ 
     -ms-animation: fadein 2s; /* Internet Explorer */ 
     -o-animation: fadein 2s; /* Opera < 12.1 */ 
      animation: fadein 2s; 
} 

И создается следующим образом:

var div = document.createElement("div"); 
div.setAttribute('class', 'fadeMe'); 
div.setAttribute('id', 'fadeMe'); 
document.body.appendChild(div); 

Нашли подобный вопрос, но без answer: Similar Question

+1

Браузер, вероятно, не поддерживает 'childNode.remove', рассмотрит [polyfill] (https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove#Polyfill). – MinusFour

+0

да Я скопировал это в onDeviceReady и для первого взгляда это исправило это! Спасибо! –

ответ

2

Использование Polyfill делает трюк:

if (!('remove' in Element.prototype)) { 
    Element.prototype.remove = function() { 
     this.parentNode.removeChild(this); 
    }; 
} 
Смежные вопросы