2017-06-20 84 views
0

我想要获得一个基本的聚合物元素在IE 11中工作,但是我收到了错误,看起来像是由于聚合物代码加载不正确或者语法错误。简单聚合物元素由于聚合物代码错误而无法加载到IE中

定制element.html

<link rel="import" href="/node_modules/@polymer/polymer/polymer-element.html"> 
 

 
<script> 
 
    class CustomElement extends Polymer.Element { 
 
    static get is() { 
 
     return "custom-element"; 
 
    } 
 
    constructor() { 
 
     super(); 
 
     this.textContent = "I'm a custom-element."; 
 
    } 
 
    } 
 
    customElements.define(CustomElement.is, CustomElement); 
 
</script>

的index.html

<!DOCTYPE html> 
 
<html lang="en"> 
 

 
<head> 
 
    <script type="application/javascript" src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script> 
 
    <link rel="import" href="custom-element.html"> 
 
</head> 
 

 
<body> 
 
    <custom-element></custom-element> 
 
</body> 
 

 
</html>

控制台错误显示为 “预期 ':'” 和“语法错误“在诸如/polymer/lib/utils/case-map.html.js和/ polymer/lib/elements之类的文件中/dom-module.html.js。

有没有其他人得到这个工作在IE 11?

+0

根据我的经验,聚合物支持IE11是一个虚假,因为浏览器后面有很多麻烦。例如,如果你开始得到一个有很多元素的非常复杂的网站,IE11会在一段时间后停止加载css,并且你需要重新加载页面。 –

回答

1

IE11不承认这个语法类,因为ES6规格: https://kangax.github.io/compat-table/es6/

class foo { 
    static bar() { 
     //..code.. 
    } 
} 

它只有这样做的ES5的方式工作:

var foo = {}; 
foo.bar = function() { 
    // ..code.. 
} 

因此您可能需要使用Polymer 1.7+ Syntax是:

Polymer({ 
    is: 'custom-element', 
    ready: function(){this.textContent = "I'm a custom-element."}. 
}) 

或使用Babel作为预处理器,将所有ES6代码转储到ES2015。