Javascript iOS 14上的Safari与模板标记或自定义元素一起使用时会中断日期/时间输入

Javascript iOS 14上的Safari与模板标记或自定义元素一起使用时会中断日期/时间输入,javascript,html,mobile-safari,web-component,ios14,Javascript,Html,Mobile Safari,Web Component,Ios14,在iOS 14(iOS 13运行正常)上将webComponent与Safari一起使用时,日期输入会呈现为日期输入,但行为会呈现为文本输入。所有其他浏览器和设备都按预期工作 代码是否存在问题,或者是否有更好的/不同的方法可以用于iOS 14?当以HTML字符串(innerHTML)形式读取内容时,输入按预期工作 HTML: 不带模板标记 带模板标签 JavaScript: var template=document.getElementById('test1'); var clone=tem

在iOS 14(iOS 13运行正常)上将webComponent与Safari一起使用时,日期输入会呈现为日期输入,但行为会呈现为文本输入。所有其他浏览器和设备都按预期工作

代码是否存在问题,或者是否有更好的/不同的方法可以用于iOS 14?当以HTML字符串(innerHTML)形式读取内容时,输入按预期工作

HTML:

不带模板标记
带模板标签
JavaScript:

var template=document.getElementById('test1');
var clone=template.content.cloneNode(true);
//变通办法
//var div=document.createElement('div');
//div.innerHTML=template.innerHTML;
//clone=div.firstElementChild;
var inputDate=clone.querySelector('input[type=date]');
var inputTime=clone.querySelector('input[type=time]');
var inputDatetime=clone.querySelector('input[type=datetime local]');
var inputNumber=clone.querySelector('input[type=number');
var inputText=clone.querySelector('input[type=text]');
document.body.appendChild(克隆);
var tester=document.getElementById('type-tester');
tester.textContent='类型;日期=“+inputDate.type+”,时间=“+inputTime.type+”,日期时间=“+inputDatetime.type+”,数字=“+inputNumber.type+”,文本=“+inputText.type+”(“+navigator.userAgent+”)”;
customElements.define('my-test',
类扩展HtmleElement{
构造函数(){
超级();
var template=document.getElementById('test2');
var templateContent=template.content;
this.attachShadow({mode:'open'}).appendChild(
templateContent.cloneNode(true)
);
}
}
);

进展 上有一个错误报告,状态为:已解决已修复


修复了iOS版本:未知

我无法测试SF。我的建议是让它成为一个问题:所有(苹果、谷歌、Mozilla等)的工程师都在监控这个问题列表。制作一个JSFIDDLE、CodePen等等,这样他们只需点击一下就可以进行测试。@Danny'365CSI'Engelman感谢您的回复,这不仅是网络组件的问题,也是模板标记上的cloneNode的问题。代码显示了这两种实现。我为这两种情况添加了两个不同的JSFIDLE链接。FWIW我在使用WKWebView的应用程序中看到了类似的行为。我们使用knockout作为一个框架,如果我们使用它来设置
type
属性,那么它确实会显示一个日期选择器,但它与Safari的不同,如果我在选择日期后点击重置,它会使我们的整个应用程序崩溃。在iOS 13及以下版本上没有任何问题。