Skip to content

Cannot define an element in the main document (Firefox and Internet explorer) #1850

Description

@plequang

While migrating tests from app-router to Polymer 1.0, I've noticed that it is not possible to define an element and use this element in the main document.

The following simple example fails under Firefox and Internet Explorer, because 'Polymer' is not defined :

<!DOCTYPE html>
<html>
    <head>
        <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
        <link rel="import" href="bower_components/polymer/polymer.html">
        <title>Polymer Tests</title>
    </head>
    <body>
        <dom-module id="x-element">
            <template>
                Test element.
            </template>
            <script>
                Polymer({
                    is: 'x-element'
                });
            </script>
        </dom-module>
        <x-element></x-element>
    </body>
</html>

It works with Chrome though.

Test page is also available here http://plequang.github.io/polymer-tests/

I thought it was a HTMLImport polyfill problem, but the same example with Polymer 0.5 and webcomponentjs 0.7.3 is working correctly.

Is this a bug, or is this way of defining elements prohibited with Polymer 1.0 (meaning you should always define elements in other files than the main document) ?

Thanks

Activity

  1. plequang commented on Jun 12, 2015

    @plequang
    Author

    I've just seen the sample jsbin mentionned here https://github.com/Polymer/polymer/blob/master/CONTRIBUTING.md#filing-bugs

    Everything works if I use

    <script>
        HTMLImports.whenReady(function () {
            Polymer({
                is: 'x-element'
            });
        });
    </script>

    Maybe it would be worth mentionning this in the documentation ?

  2. arthurevans commented on Jun 12, 2015

    @arthurevans

    This limitation is documented here:

    https://www.polymer-project.org/1.0/docs/devguide/registering-elements.html

    This is, as you guessed, a limitation of the polyfill. Polymer 0.5 worked around this at the cost of additional complexity, so Polymer 1.0 doesn't do the same workaround.

    This could be clearer in the docs (and we should cover using whenReady), so I'll turn this into a doc issue.

  3. arthurevans commented on Jun 12, 2015

    @arthurevans

    This issue was moved to Polymer/old-docs-site#1187

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions