Polymer:如何内联外部脚本

时间:2014-08-29 22:47:48

标签: polymer

我试图弄清楚是否可以在我的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>

我看了vulcanizehttps://github.com/Polymer/vulcanize),但似乎无法做到。

编辑:

让我重新说明我想要实现的目标:

我知道当vulcan处理包含元素的HTML页面时,它会将这些元素的模板合并到结果输出中,并且(给定--csp选项)它还会创建一个javascript文件,其中包含所有嵌入的元素的脚本。我希望能够合并到生成的.js文件中,不仅包括嵌入式脚本,还包括从我的元素链接到的脚本。

1 个答案:

答案 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>内。