こんにちは、Chrome と Opera で Polymer 1.0 の Web ページを作成しています。次に、このページを Firefox と Safari で実行する必要があります。次のテストがあります。
<!DOCTYPE html>
<html>
<head>
<?php use Cake\Routing\Router; ?>
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents-lite.min.js'); ?>
<link rel="import" href="<?= Router::url('/'); ?>bower_components/polymer/polymer.html">
<dom-module id="test-element">
<template >
<h1>It works</h1>
</template>
<script>
Polymer({
is: "test-element"
});
</script>
</dom-module>
</head>
<body unresolved>
<test-element></test-element>
</body>
</html>
変えてみました
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents-lite.min.js'); ?>
に
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents.js'); ?>
また
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents.min.js'); ?>
webcomponents の Polyfills が html のインポートを処理すると思いました。しかし、それは機能していません。firefox では、次のエラーが表示されます。
ReferenceError: Polymer is not defined
Safari でテストすることはできませんでしたが、同様の結果が期待できます。
私は何か間違ったことをしていますか?どうすればこれを機能させることができますか?
また、webcomponents を削除し、bower update を実行して再度インストールしてみました。
ありがとうございました
編集:
私は2つのファイルを持っています。index.html:
<!DOCTYPE html>
<html>
<head>
<?php use Cake\Routing\Router; ?>
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents.js'); ?>
<link rel="import" href="<?= Router::url('/'); ?>bower_components/polymer/polymer.html">
<?= $this->element('Polymer/test-element');?>
</head>
<body unresolved>
<test-element></test-element>
</body>
</html>
および要素ファイル:
<dom-module id="test-element">
<template >
<h1>It works</h1>
</template>
<script>
addEventListener('WebComponentsReady', function() {
Polymer({
is: "test-element"
});
});
</script>
</dom-module>
これはうまくいきます。私の問題は、addEventListener を削除した場合です。Firefox でも同じエラーが発生します。
ReferenceError: Polymer is not defined
ポリフィルが時間内にロードされなかったかのように。これを修正する方法はありますか?addEventListener を追加するのは正しい方法ですか?
ありがとうございました