【发布时间】:2014-02-11 16:34:34
【问题描述】:
关于这个话题的帖子很多,但大部分都是因为IE没有动态设置属性name。
我遇到了另一个麻烦:我发布了一个表单(动态创建),iframe 为 target。第一次效果很好。然后我第二次这样做,IE 会打开一个带有表单提交结果的新窗口。我很确定这与安全问题有关,因为:如果我创建一个简单的HTML file(而不是HTA),它会很好用。此外,如果我运行在本地 (http://local.host/test.hta) 无法运行的同一个文件,它会很好用。
关于发生了什么或我该如何解决的任何线索?遗憾的是它的遗留代码,我无法避免使用HTA 或iframes 并提交表单。
这里是简单的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<HTA:APPLICATION
ID="oHTAGeneral_v5"
APPLICATIONNAME="TEST"
ICON='Img/icono.ico'
SCROLL="no"
SINGLEINSTANCE="yes"
SELECTION='yes'
NAVIGABLE='yes'
SHOWINTASKBAR='Yes'
WINDOWSTATE='normal' />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(function() {
var url = "http://www.some-url.com/",
first = true;
$("#frame").unbind("load");
$("#frame").load(function(){
if (first) {
first = false;
$("#frame")[0].contentWindow.document.cookie = "testCookie=dummyValue";
$("<form></form>")
.attr("target", "frame").attr("method", "POST").attr("action", url)
.css("display", "none")
.appendTo($(document.body))
.append('<input type="hidden" name="dummy" value="dummy" />')
.submit();
return;
}
// Other stuff
});
$("<form></form>")
.attr("target", "frame").attr("method", "POST").attr("action", url)
.css("display", "none")
.appendTo($(document.body))
.append('<input type="hidden" name="dummy" value="dummy" />')
.submit();
});
</script>
</head>
<body>
<iframe id="frame" name="frame" width="200" height="50"></iframe>
</body>
</html>
【问题讨论】:
标签: javascript html iframe hta