이 주제에 대한 게시물이 많이 있지만 그 중 대부분은 IE가 동적으로 name
속성을 설정하지 않았기 때문입니다.HTA의 iframe에 대한 IE 게시는 새 창을 엽니 다.
다른 문제가 있습니다. 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>