对象#<htmldivelement>没有方法&#39;删除&#39;

时间:2015-10-05 13:33:02

标签: javascript android cordova

我正在创建一个Cordova混合应用程序。我使用Facebookconnectplugin并在第一次启动时显示教程。这适用于每个支持的Plattform和版本(Android / iOS),但不适用于Android 4.1 这里的代码打破了&#34;对象#没有方法&#39;删除&#39;&#34;。当我尝试删除fadeMe div时,它在线路上一直打破。如上所述,其他地方(Android 4.3 + / iOS 7 +)

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);

发现了一个类似的问题,但没有回答:Similar Question

1 个答案:

答案 0 :(得分:2)

使用Polyfill可以解决问题:

if (!('remove' in Element.prototype)) {
    Element.prototype.remove = function() {
        this.parentNode.removeChild(this);
    };
}