크로스 필드 폼 제출 상태의 변형 판단 코드

돌 이 켜 보면 iframe 내부 페이지 정 보 를 얻 을 수 있다 면 얻 을 수 없 을 때 는 양식 이 제출 되 었 음 을 설명 하 는 것 이 아 닙 니까?우 리 는 바 이 두 의 경쟁 가격 오른쪽 하단 정 보 를 발 견 했 고 이런 방법 으로 판단 한 것 입 니 다.참고 하 시기 바 랍 니 다.예:test.html:
 
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body style="background:#a7a7a7;">
<iframe id="testiframe" name="testiframe"></iframe>
<form method="post" action="http://www.test.com/testaction.php" target="testiframe" name="testform">
<input type="text" name="dddd"><input type="submit" value="ddd" name="submitbtn"/>
</form>
</body>
<script>
document.testform.onsubmit = function () {
document.testform.submitbtn.disabled = true;
submitMonitor();

}
function submitMonitor () {
try{
var hash = document.getElementById('testiframe').contentWindow.location.hash;
setTimeout(submitMonitor,100);
} catch (e) {
document.getElementById('testiframe').src = "about:blank";
document.testform.submitbtn.disabled = false;
}
}
</script>
</html>
아래 코드 는 도 메 인 을 뛰 어 넘 는 것 이지 한 도 메 인 이름 의 test action.php
 
<?php
sleep(5);
echo $_POST['dddd'];
?>
단점:이 단점 은 아직도 뚜렷 하 다.404,403,500 등 오류 가 있 으 면 성공 적 으로 제출 한 것 으로 오인 할 수 있다.그러므로 주의:이 방법 은 연구 에 속 하고 사 고 를 개척 하 는 데 쓰 인 다.이 부분 은 바 이 두 의 판단 코드 입 니 다

var sfMessTimes;
function sfMessSubmitMonitor () {
try{
var hash = sf_mess_lib.getElement(SF_MESS_FRAME_ID).contentWindow.location.hash;
        sfMessTimes ++;
        if (sfMessTimes > 50) {
            alert(sf_mess_msg.fail);
            sf_mess_lib.getElement(SF_MESS_SUBMIT_ID).disabled = false;
            for (var i = 0, l = sf_mess_cols.length; i < l; i++) {
                document.getElementById(SF_MESS_PREFIX + sf_mess_cols[i].idname).disabled = false;
            }
        } else {
            setTimeout(sfMessSubmitMonitor,100);
        }
} catch (e) {
sf_mess_lib.getElement(SF_MESS_FRAME_ID).src = "about:blank";
        alert(sf_mess_msg.success);
sf_mess_lib.getElement(SF_MESS_SUBMIT_ID).disabled = false;
        for (var i = 0, l = sf_mess_cols.length; i < l; i++) {
            var inputCfg = sf_mess_cols[i];
            var inputEl = document.getElementById(SF_MESS_PREFIX + inputCfg.idname);
            inputEl.disabled = false;
            inputEl.value = filtInnertip(inputCfg.innertip);
        }
}
}

좋은 웹페이지 즐겨찾기