如何選擇陰影DOM中的節點?考慮下面的例子:如何在Dart中從外部查詢影子DOM中的元素?
「無陰影」 DOM<app-element>
#shadow-root
<h2></h2>
<content>
#outside shadow
<h2></h2>
</content>
<ui-button>
#shadow-root
<h2></h2>
</ui-button>
</app-element>
的index.html
<body>
<app-element>
<!-- OK: querySelect('app-element').querySelect('h2') -->
<!-- OK: querySelect('app-element h2') -->
<!-- There is no problem to select it -->
<h2>app-element > content > h2</h2>
</app-element>
</body>
templates.html的
結構
<polymer-element name="ui-button" noscript>
<template>
<!-- FAIL: querySelect('app-element::shadow ui-button::shadow h2') -->
<h2>app-element > ui-button > h2</h2>
</template>
</polymer-element>
<polymer-element name="app-element" noscript>
<template>
<!-- FAIL: querySelect('app-element::shadow').querySelect('h2') -->
<!-- FAIL: querySelect('app-element::shadow h2') -->
<!-- FAIL: querySelect('app-element').shadowRoot.querySelect('h2') -->
<h2>app-element > h2</h2>
<content></content>
<ui-button></ui-button>
</template>
</polymer-element>
在「OK:querySelect()」之類的註釋中,我顯示了我試圖從任何陰影DOM之外運行的選擇器。
我已閱讀以下文章:http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/?redirect_from_locale=ru並基於它在文章中提到的事實,JS中的查詢如:document.querySelector('app-element::shadow h2');
應該按預期工作。但是在Dart中它不起作用。
我該怎麼做?
哪裏是你的'querySelector ...'代碼?主要的,在AppElement類中,在類中的什麼地方? –
使用CSS一切都按預期工作:像':: shadow'和combinator'/ deep /'這樣的僞選擇器會影響元素。但是,當我使用Dart的'querySelect(All)'函數時沒有任何意義。 ''標籤內只有h2可到達。怎麼了? –
'main(){}'中的代碼 –