2015-11-02 22 views
6

Projemde açısal kullanıyorum. Ama ben bir alandan (.Content)Javascript: mobil cihazlarda DOMParser kullanımı (iOS 7. *)

Ve tüm Tamam ... Ben yüklü iOS 7 ile iPad 3 aldı ve şaşırdı bazı verileri kontrol ve düzenlemek için DOMParser kullanmak zorunda)

önemli değil ...

Neden iOS 7'de çalışmıyor (ancak iOS 8+ üzerinde çalışıyor)?

Bu sorunu iOS 7'de nasıl çözebilirim? Belki bazı geçici çözümler var? Uygulama, normalde çalışıyor, ancak DOMParser ile o

+0

Ne tür bir hata yaptığı konusunda daha spesifik olabilir misiniz? – James

+0

@JavaAnto bunu nasıl bilebilirim? domparser ile çalışmayı bozar ... – brabertaser19

+0

DOMParser problem ise, bu problemin başka bir yaklaşımı vardır. Html'yi sayfanın gövdesine ekleyebilir ve aşağıdaki gibi çocuk düğümleri alabilirsiniz: 'var div = document.createElement ('div'); div.innerHTML = 'biraz html'; var result = div.childNodes; ' – James

cevap

3

Belirli tarayıcılar sakın ... hata tr yükseltmek gibi görünüyor - ben bu kodu silerseniz

var parser = new DOMParser(); 
var doc = parser.parseFromString('<div id="fetchContent">' + $scope.news.Content + '</div>', "text/html"); 
... 
$scope.news.Content = doc.getElementById('fetchContent').innerHTML; 

: Burada

benim kod parçasıdır Bu işlevselliği destekleyin. Yukarıdaki komut Mozilla'nın web sitesinden here ayıklandı

* inspired by https://gist.github.com/1129031 */ 
/*global document, DOMParser*/ 

(function(DOMParser) { 
    "use strict"; 

    var 
     proto = DOMParser.prototype 
    , nativeParse = proto.parseFromString 
    ; 

    // Firefox/Opera/IE throw errors on unsupported types 
    try { 
     // WebKit returns null on unsupported types 
     if ((new DOMParser()).parseFromString("", "text/html")) { 
      // text/html parsing is natively supported 
      return; 
     } 
    } catch (ex) {} 

    proto.parseFromString = function(markup, type) { 
     if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { 
      var 
       doc = document.implementation.createHTMLDocument("") 
      ; 
       if (markup.toLowerCase().indexOf('<!doctype') > -1) { 
        doc.documentElement.innerHTML = markup; 
       } 
       else { 
        doc.body.innerHTML = markup; 
       } 
      return doc; 
     } else { 
      return nativeParse.apply(this, arguments); 
     } 
    }; 
}(DOMParser)); 

: Bu yama için, aşağıdaki JavaScript kodu kullanabilirsiniz.

İlgili konular