我知道javascript的封装不是Web组件W3C规范的一部分,但是,使用Polymer避免全局命名空间污染的一些策略是什么?
例如,如果我在Polymer组件中包含<script src="./jquery.js"></script>
,则$
会泄漏到主机页面的窗口对象中。这对我来说非常有问题,因为我在chrome扩展中使用Polymer。
答案 0 :(得分:3)
一种方法可能是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>