2017-02-15 16 views
7

मैं कोणीय-क्ली के साथ कोणीय 2 का उपयोग कर रहा हूं और मैं माइक्रोसॉफ्ट एज का समर्थन करने के लिए srcdoc polyfill जोड़ना चाहता हूं। तो:कोणीय 2 srcdoc polyfill काम नहीं करता

मैं https://github.com/jugglinmike/srcdoc-polyfill

मैं polyfills.ts में import 'srcdoc-polyfill/srcdoc-polyfill.min'; आयातित package.json को जोड़ा गया।

मुझे यह पसंद है इस्तेमाल किया:

@Directive({ 

    selector: '[tlIframeAutoHeight]' 
}) 
export class IframeAutoHeightDirective { 

    constructor(element: ElementRef, renderer: Renderer) { 
    renderer.listen(element.nativeElement, 'load',() => { 
     renderer.setElementStyle(
     element.nativeElement, 
     'height', 
     element.nativeElement.contentWindow.document.body.clientHeight + 'px' 
    ); 
    }); 
    } 
} 

माइक्रोसॉफ्ट एज 35 अनदेखी कर रहा है srcdoc संपत्ति, के बारे में किसी भी विचार:

<iframe class="ticket-frame" [srcdoc]="ticket.html | htmlSafe" 
        tlIframeAutoHeight> 
</iframe> 

संयोग से, अगर तुम मुझे IframeAutoHeight निर्देश के लिए पूछना, यहाँ कोड है समस्या क्या है?

मैं वर्कअराउंड भी स्वीकार करता हूं।

उत्तर

4

किसी कारण से विशेषता काम नहीं करता:

<iframe #frame></iframe> 

import * as srcDoc from 'srcdoc-polyfill'; 

@ViewChild('frame') 
public iframe:ElementRef; 

srcDoc.set(this.iframe.nativeElement, "<html><body>test</body></html>"); 
+0

यह एक अच्छा जवाब है। ध्यान दें कि आप इस उदाहरण में तकनीकी रूप से _not_ polyfilling हैं, बल्कि _ponyfilling_ (कभी-कभी मुझे कला की अवधि से नफरत है), इसलिए यह दृष्टिकोण लाइब्रेरी कोड में अच्छा होगा, लेकिन इसे 'आयात' srcdoc-polyfill 'के रूप में आयात करना अच्छा होगा ऐप कोड में, जैसा कि पॉलीफिल का बिंदु है। बीटीडब्ल्यू, ऊपर उठाया! –

+0

मुझे लगता है कि यह केवल उन iframes polyfills है जो पृष्ठ पर मौजूद है जब पॉलीफिल निष्पादित किया जाता है। – kemsky

+0

नहीं, यह कुछ भी पॉलीफिल नहीं करता है, जो ठीक है। आप उस व्यवहार को आयात कर रहे हैं जो पॉलीफ़िल्ल्ड होगा और इसे फ़ंक्शन के रूप में कॉल करेगा। –

संबंधित मुद्दे