【发布时间】:2020-06-06 05:54:48
【问题描述】:
我有一个iframe,它是form 的目标。当按下submit 时,iframe 应该删除main 元素。这在除 Firefox 之外的所有主要浏览器中都可以正常工作,其中 main 在页面加载时立即被删除。
这只是 Firefox 中的一个错误,还是我遗漏了什么?
document.addEventListener("DOMContentLoaded", _ => {
// Create an iframe and submit a form to it
// ========================================
const form = document.forms[0]
form.setAttribute("target", "Response")
const iframe = Object.assign(document.createElement("iframe"), {
name: "Response"
})
iframe.hidden = true
document.body.appendChild(iframe)
iframe.addEventListener("load", () => {
const main = document.querySelector("body > main")
main.remove()
iframe.hidden = false
})
})
<main>
<form action=https://script.google.com/macros/s/AKfycbzz-KveHder1A3CX8GcqZI6GR2MQj66PDRWNKoatIET_LXNqQs/exec method=get>
<fieldset>
<legend>Foobar</legend>
<label><input type=radio name=Foobar value=Foo>Foo</label><br>
<label><input type=radio name=Foobar value=Bar>Bar</label><hr>
<input type=submit value=Submit>
</fieldset>
</form>
</main>
【问题讨论】:
-
“iframe 应该替换主要元素...” 我没有看到 替换。我看到删除...?
-
@T.J.Crowder 你说得对!我使用了不好的术语。
-
@T.J.Crowder 我通过 JavaScript 设置了
target属性。 -
哦……确实,它就在代码中。对不起。 :-D
标签: javascript html firefox iframe ecmascript-6