Google chrome 纸张输入自动完成无法填充

Google chrome 纸张输入自动完成无法填充,google-chrome,polymer,polymer-1.0,paper-elements,Google Chrome,Polymer,Polymer 1.0,Paper Elements,聚合物1.0 铬50.0.2661.102 我正在尝试使用纸张输入启用chrome自动填充。当选择输入时,会出现标准的相应chrome自动填充提示列表,但是从列表中选择可用的名称或电子邮件不会填充输入,只会关闭chrome自动填充列表 <paper-input id="email" name="email" label="Email" type="email" autocomplete="email" ></pape

聚合物1.0 铬50.0.2661.102

我正在尝试使用纸张输入启用chrome自动填充。当选择输入时,会出现标准的相应chrome自动填充提示列表,但是从列表中选择可用的名称或电子邮件不会填充输入,只会关闭chrome自动填充列表

   <paper-input
     id="email"
     name="email"
     label="Email"
     type="email"
     autocomplete="email"
   ></paper-input>
   <paper-input
     id="password"
     name="password"
     label="Password"
     type="password"
     autocomplete="current-password"
   ></paper-input>

尝试将输入包装在没有属性的表单标记中。像这样:

<form>
  <paper-input
     id="email"
     name="email"
     label="Email"
     type="email"
     autocomplete="email"
   ></paper-input>
   <paper-input
     id="password"
     name="password"
     label="Password"
     type="password"
     autocomplete="current-password"
   ></paper-input>
</form>

要使其正常工作,您需要切换到shady DOM,因为目前(2018年8月2日),浏览器不支持shadowDOM的自动填充。Polymer开发人员在以下bug追踪器中请求此支持:

  • 要使用shady DOM,请将以下代码放在
    webcomponents loader.js
    脚本上方:

        <script>
            // Force all polyfills on
            if (window.customElements) window.customElements.forcePolyfill = true;
            ShadyDOM = {
                force: true
            };
    
            function idToChainedClass(poly, _this) {
                if (ShadyDOM) {
                    const allElements = poly.dom(_this.root).querySelectorAll('*');
                    let id;
                    for (var x = 0, len = allElements.length; x < len; x++) {
                        if (allElements[x].id) {
                            id = allElements[x].id;
                            allElements[x].removeAttribute('id');
                            allElements[x].classList.add(id);
                            _this.$[id] = poly.dom(_this.root).querySelector('.' + id);
                        }
                    }
                }
            }
        </script>
        <script src="bower_components/webcomponentsjs/webcomponents-loader.js"></script>
    
    
    //强制启用所有多边形填充
    如果(window.customElements)window.customElements.forcePolyfill=true;
    ShadyDOM={
    原力:对
    };
    函数idToChainedClass(poly,\u this){
    if(ShadyDOM){
    constAllegements=poly.dom(_this.root).querySelectorAll('*');
    让我看看你的身份证;
    对于(var x=0,len=allegements.length;x
    并使用
    ready()
    中的函数
    idToChainedClass
    ,无论您在何处看到如下错误: [DOM]发现x个元素具有非唯一id#输入 您还可以随机化ID以使其唯一。遵循纸张输入提供的技巧:

    这类似于。你能提供一个jsbin来重现这个问题吗?这个jsbin只能在android上运行,而不能在iPhone中的safari上运行。