2017-04-26 230 views
0

如果我在Polymer中有一個自定義Web組件,是否可以將模板的範圍限定爲主要DOM(index.html的一部分),而不是陰影?如何在全局範圍內聚合物1.x聚合物Web組件

我想鉤入由腳本激活的輸入,並且該腳本無法看到陰影DOM。

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

回答

0

好吧,你當然可以指向窗口對象。這可能不是影子應該如何工作,但如果你有一些庫可以控制,那麼這可能只是解決方案。 所以定製元素腳本里面你可以這樣做:

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

如果您嘗試console.log(window.reference)你可以看到有全定製元素

+0

當我'''的console.log(window.reference) ''',該元素確實填充在開發工具中,儘管元素本身仍然有一個腳本無法定位的''#shadow-root''。是否有可能做類似'''window.reference = this.shadowRoot'''? – KVNA

+0

我似乎越來越接近'''this.shadowRoot.innerHTML'''選擇器。 – KVNA

+0

如果你用'this.shadowRoot'完成,你會得到html,你可以調用'.querySelector','getElementById'等等,所以我不知道問題出在哪裏。問題是,你的圖書館在做什麼,或者它如何發現元素 –