Javascript Iframe尚未生成,但具有警报的代码仍然有效

Javascript Iframe尚未生成,但具有警报的代码仍然有效,javascript,iframe,Javascript,Iframe,我试图编辑一个页面,这样提交表单只会生成一个iframe。如果我使用此代码: window.onload = function() { var formItem = document.getElementsByTagName("form")[2]; formItem.setAttribute('action', ''); formItem.addEventListener('submit', createIframe, false); } function createIframe

我试图编辑一个页面,这样提交表单只会生成一个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代码一定有问题,但我不知道是什么!有人有什么建议吗?谢谢

您忘了取消
表单的默认行为

function createIframe(e){
    e.preventDefault();
    //...
否则,表单将使用空的
action
属性将页面提交给自身


工作得很好-非常感谢!我对preventDefault()不熟悉,所以我也学到了一些新东西——干杯@金戈:没问题
=]
在这种情况下,我只是在我的答案中链接到了
preventDefault()
MDN页面,其中显示了另一个示例,尽管名称是不言自明的<代码>:)