我试图弄清楚是否可以在我的Polymer元素中内联外部javascripts。我知道如果我有一个样式表的链接,那么它会被合并(来自http://www.polymer-project.org/docs/polymer/styling.html):
<polymer-element name="my-element">
<template>
<link rel="stylesheet" href="my-element.css">
...
</template>
<script>
Polymer('my-element',...);
</script>
</polymer>
Polymer将使用:
自动内联my-element.css样式表<polymer-element ...>
<template>
<style>.../* Styles from my-element.css */...</style>
...
</template>
<script>
Polymer('my-element',...);
</script>
</polymer>
我正在寻找一种方法来对外部javascript文件做同样的事情:
<polymer-element name="my-element">
<template>
<link rel="stylesheet" href="my-element.css">
...
</template>
<script src="my-element.js">
</polymer>
得到这样的东西:
<polymer-element ...>
<template>
<style>.../* Styles from my-element.css */...</style>
...
</template>
<script>.../* code from my-element.js */...</script>
</polymer>
我看了vulcanize
(https://github.com/Polymer/vulcanize),但似乎无法做到。
编辑:
让我重新说明我想要实现的目标:
我知道当vulcan处理包含元素的HTML页面时,它会将这些元素的模板合并到结果输出中,并且(给定--csp
选项)它还会创建一个javascript文件,其中包含所有嵌入的元素的脚本。我希望能够合并到生成的.js
文件中,不仅包括嵌入式脚本,还包括从我的元素链接到的脚本。
答案 0 :(得分:1)
除了<script>
需要结束标记之外,它应该像你编写的那样工作。即。
<polymer-element name="my-element">
<template>
<link rel="stylesheet" href="my-element.css">
...
</template>
<script src="my-element.js"></script>
</polymer>
Fwiw,两种情况下的脚本都是由浏览器正常加载和执行的。从这个意义上说,它与stylesheet
链接不同,后者是Polymer模拟的一个特征。
出于同样的原因,您可以在任何地方加载/运行该脚本。标签不必在<polymer-element>
内。