Vam Works

HTML < form > 的target更改后,如果iframe的name也更改,则无法匹配

我们有一个iFrame (name = “Tom”)和一个form (target = “Tom”),也就是form会提交到iFrame中。

当用JavaScript在页面创建后,同时更改form的name与form的target为”Jerry”,并且提交form后,在不同浏览器中会有不同表现:

Chrome (version 43): 没反应 Firefox (version 39): 正常工作 Safari (version 7.1.7): 新窗口弹出 Internet Explorer 7,8,9,10,11: 新窗口弹出;IE11切换版本后则本页刷新

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="/libs/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#change').click(function () {
                $('#i-am-iframe').attr('name', 'Jerry');
                $('#i-am-form').attr('target','Jerry');
                alert('Changed!');
            });

        });
    </script>
</head>
<body>
<a id="change" href="#">Change</a>
<br/>
<form id="i-am-form" method="post" target="Tom"><input type="submit"/></form>
<p>iFrame Tom</p>
<iframe id="i-am-iframe" name="Tom"></iframe>

</body>
</html>

如果新创建一个iFrame append到页面中,然后更改form的target到这个iFrame的name,则都没问题。