Son birkaç aydır bu sorun üzerinde çalışıyorum.
burada dökmeyen tarayıcılarda^çalışan bir polyfill var
Alt çizgi https://github.com/Polymer/ShadowDOM
CSS özelliklerinden ^polyfilling @host yakında Yani
geliyor, henüz orada değiliz gibi evet, bu kadar bir Özellikle polyfill için zor bir şey, çünkü ikincil DOM ağaçları icat etmek zorundayız. Oldukça invaziv bir sarmalayıcı tekniğinin kullanılmasını gerektiren, kullanıcı dostu olarak yapmaya çalıştık. Başka bir deyişle
, sen div = document.createElement('div')
varsa, bir DIV benziyor ve bir DIV gibi çalışır, ama aslında bir Sarıcı nesnesidir bir şey olsun. Nihai amaç elbette, kodunuzun, polifiliğin altında veya yerel bir uygulama altında çalışıp çalışmadığına bakmasıdır.
% 100 kurşun geçirmez bize sizin için document
sarmak mümkün değildir, özellikle de değil, bu yüzden, a la kendiniz yapmak bu duruma:
document
sorunu dışında
wrap(document).querySelector(...)
, sargı olan şeffaf çalışmak için tasarlanmıştır. Hepsi yepyeni, bu yüzden doküman eksikliğinden dolayı özür dilerim. Konuştuğumuz gibi üzerinde çalışıyoruz.
Lütfen file issues sorularınız veya sorunlarınız varsa, geribildirim almayı seviyoruz. Ayrıca bu polyfill'i (ve bu orgdaki diğer polyfill'leri) [email protected] adresinden tartışmak için bir e-posta kanalı da vardır.
Ben bu malzeme yaygın
Gerçek
uygulanmaktadır şüphe ama en azından Chrome'da bu.
Gölge DOM, bu noktaya kadar kullanıma sunulmamış tarayıcı iç kullanıcı arabirimini açığa çıkardığından, bunun nasıl işe yaradığını görüntüleyemiyorum. Bir çözüm, tarayıcı UI davranışını sıfırdan tamamen kopyalamaya ihtiyaç duyacaktır. –
@Matt Stone - Bir fikir, CSS'nin gölge domun bir parçası olan dom öğelerini gizlemek ve Javascript DOM sorgu işlevlerini (örneğin getElementById) herhangi bir gizli DOM öğesini döndürmeyecek şekilde değiştirmektir. Elbette, bundan çok daha fazlası var ve bir polifilliğin açık bir şekilde sınırlamaları olacaktır. –
@ PatriciaBrothers - muhtemelen belge parçaları kullanılarak ya da gölge bileşenlerini DOM'dan çıkararak ve bunları bir div'a yerleştirerek taklit edilebilir. Bu şeyin yaygın olarak uygulandığından şüphe etmiyorum, buna çok fazla ihtiyaç yok. – RobG