1

代わりにフォームを送信すると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コードの問題であるに違いありませんが、私には何がわかりません!誰か提案はありますか?ありがとう

4

1 に答える 1

2

formのデフォルトの動作をキャンセルするのを忘れました。

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

これがないと、フォームは空のaction属性でページを自分自身に送信します。

フィドル

event.preventDefault()MDNリファレンス

于 2012-08-07T10:26:25.133 に答える