我知道javascript的封装不是Web组件W3C规范的一部分,但是有哪些策略可以避免Polymer污染全局名称空间?
例如,如果我将其包含<script src="./jquery.js"></script>
在Polymer组件中,则会$
泄漏到宿主页面的window对象中。这对我来说是个很大的问题,因为我在镀铬扩展中使用了Polymer。
一种方法可能是使jquery-api.html
像这样:
<script src="[path.to]jquery.js"></script>
<script>
(function() {
// make local $
var $ = window.$;
// kill globals
$.noConflict(true);
// make $ available via custom-element registry
Polymer({
is: 'jquery-api',
get $() {
return $;
}
});
})();
</script>
然后,您可以在需要的任何地方使用它:
<link rel="import" href="jquery-api.html">
<script>
(function() {
var $ = document.createElement('jquery-api').$;
Polymer({
is: 'jquery-user'
/* can use $ in here */
});
})();
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句