2017-04-26 3 views
0

Wenn ich eine benutzerdefinierte Webkomponente in Polymer habe, ist es möglich, die Vorlage als Teil des Haupt-DOM (von index.html) zu definieren und nicht in der Schatten?Globales Skalieren einer Polymer 1.x-Polymer-Webkomponente

Ich versuche, in eine Eingabe einzufügen, die von einem Skript aktiviert wird, und das Skript kann das Schatten-DOM nicht sehen.

<link rel="import" href="../../bower_components/polymer/polymer.html"> 

<dom-module id="custom-element"> 

<template> 

    // Code to be scoped for index.html 

    <div id="script-selects-this-id-and-converts-div-to-input"></div> 

</template> 

    <script> 

    Polymer({ 

     is: 'custom-element' 

    }); 

    </script> 

</dom-module> 

Antwort

0

Nun, Sie können natürlich auf Fensterobjekt zeigen. Dies ist wahrscheinlich nicht, wie Shadow Dom funktionieren sollte, aber wenn Sie eine Bibliothek haben, die Sie kontrollieren können, dann ist dies wahrscheinlich nur eine Lösung. so innerhalb custom-Element Skript kann man so etwas tun:

ready: function() { 
    window.reference = this; 
} 

wenn Sie console.log(window.reference) versuchen Sie es ganz individuell Element sehen

+0

Wenn ich '' 'console.log (window.reference) '' ', das Element füllt sich in Dev Tools, obwohl das Element selbst immer noch eine' '# # shadow-root''' hat, die das Skript nicht finden kann. Ist es möglich, etwas wie '' 'window.reference = this.shadowRoot''' zu tun? – KVNA

+0

Ich scheine mich dem '' '' this.shadowRoot.innerHTML''' Selektor zu nähern. – KVNA

+0

Wenn du es mit 'this.shadowRoot' machst, bekommst du html, wo du' .querySelector', 'getElementById' usw. aufrufen kannst, also weiß ich nicht, wo das Problem liegt. Die Frage ist, was macht Ihre Bibliothek oder wie findet sie Elemente? –