Safari 9让form
标记在dom元素下消失。
Safari 8和Chrome和Firefox都很好。
我搜索了safari 9 documentation
。
但我找不到解决方案。 有人有任何信息吗?
这是template
+ form
问题。
https://jsfiddle.net/svj7j2gs/
<form id="first-form">
first-form
</form>
<template>
<form id="second-form">
second-form
</form>
</template>
<form id="third-form">
third-form
</form>
#third-form
表单标记已存在。
删除了#third-form
表单标记。
自Safari 7.1以来支持template
标记?
https://html.spec.whatwg.org/multipage/scripting.html#the-template-element
如果它是一个错误,它超出了stackoverflow的范围。 所以我发布了Apple支持社区。 Safari 9 - broken DOM. Is it bug? | Apple Support Communities
答案 0 :(得分:0)
这绝对是一个错误。
解决方案1 :使用嵌套的form
template
移到form
上方
实施例:
<form id="first-form">
I'm fine here
</form>
<template>
<form id="second-form">
second-form
</form>
</template>
解决方案2 :直接在模板后面和所需的form
之前添加一个虚拟form
。只有模板后面的第一个表单才会从DOM中删除。
实施例:
<template>
<form id="second-form">
second-form
</form>
</template>
<form id="third-form">
I will get stripped
</form>
<form id="third-form">
I will be fine here
</form>