2012-08-07 3 views
1

대신 양식을 제출하는 대신 iframe을 생성하도록 페이지를 편집하려고합니다. 이 코드를 사용하는 경우 :Iframe이 생성되지 않고 경고가있는 동일한 코드가 작동합니다.

window.onload = function() { 
    var formItem = document.getElementsByTagName("form")[2]; 
    formItem.setAttribute('action', ''); 
    formItem.addEventListener('submit', createIframe, false); 
} 

function createIframe(){ 
    var ifrm = document.createElement("IFRAME"); 
    ifrm.setAttribute("src", "http://127.0.0.1/myIframe.html"); 
    ifrm.style.width = "50%"; 
    ifrm.style.height = "50%"; 
    document.body.appendChild(ifrm); 
} 

그러면 양식을 제출할 때 iframe이 생성되지 않습니다. 그러나 createIframe() 함수를 다음과 같이 만듭니다.

function createIframe(){ 
    alert(1); 
    } 

그런 다음 양식을 제출하면 경고가 생성됩니다. 따라서 그것은 내 iframe 코드 문제가 있어야하지만, 나는 무엇을 알아낼 수 없습니다! 누구든지 어떤 제안이 있습니까? 감사합니다

답변

2

form의 기본 동작을 취소하는 것을 잊었습니다.

function createIframe(e){ 
    e.preventDefault(); 
    //... 

이없이, 형태는 빈 action 속성 자체에 페이지를 제출합니다.

Fiddle

event.preventDefault() MDN Reference

+0

는 완벽하게 작동 - 감사합니다 순전히! preventDefault()에 익숙하지 않아 새로운 것을 배웠습니다. - 건배! – Jingo

+0

@Jingo 문제가 없습니다. '=]'이 경우, 필자의 답변에있는'preventDefault()'MDN 페이지에 링크되어 있습니다. 이름은 꽤 자명하지만 다른 예제를 보여줍니다. ':)' –

+0

굉장 - 다시 한번 감사드립니다! – Jingo

관련 문제