Здравствуйте, у меня есть рабочая веб-страница Polymer 1.0 в Chrome и Opera. Теперь мне нужно, чтобы страница работала в 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'); ?>
to
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents.js'); ?>
or
<?php echo $this->Html->script('/bower_components/webcomponentsjs/webcomponents.min.js'); ?>
Я думал, что полифиллы веб-компонентов позаботятся об импорте html. Но это не работает. В firefox я получаю следующую ошибку:
ReferenceError: Polymer is not defined
Я не смог протестировать его с Safari, но ожидаю такого же результата.
Я делаю что-то не так? как я могу заставить это работать?
Также я попытался удалить веб-компоненты и запустить обновление Bower, чтобы установить их снова.
благодарю вас
РЕДАКТИРОВАТЬ:
У меня есть два файла. индекс.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 правильным способом?
Спасибо