2009-09-10 34 views
0

我已經寫了這段代碼嘗試發送一個url作爲後期值到同一頁面。代碼在Chrome和safari中運行得很好......但在FF3和IE中失敗了(最後一個我可以不在乎,但我需要它在Firefox中工作)。在FF3和IE中,它打開了一個空白的新選項卡。我應該知道webkit和其他瀏覽器通過javascript處理表單submital的方式之間的區別?Javascript form submital在webkit中工作,在其他地方失敗

我正在使用的代碼是這樣的:

function posturl (url) { 
     var myForm = document.createElement("form"); 
     myForm.method="post" ; 
     var myInput = document.createElement("input") ; 
     myInput.setAttribute("name", "url") ; 
     myInput.setAttribute("value", url); 
     myForm.appendChild(myInput); 
     document.body.appendChild(myForm) ; 
     myForm.submit(); 
     document.body.removeChild(myForm) ; 
    } 

編輯:也許我應該補充一點,它的工作方式是,我使用的腳本在我的錨標記A HREF。所以當你點擊鏈接時,它會通過帖子將參數傳遞給同一頁面,從而相應地更新內容。

回答

1

它爲我的Firefox 2,鉻2.這是我完整的測試頁:

<!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> 
    <script> 
    function posturl (url) { 
     var myForm = document.createElement("form"); 
     myForm.method="post"; 

     var myInput = document.createElement("input") ; 
     myInput.setAttribute("name", "url") ; 
     myInput.setAttribute("value", 'http://www.google.com'); 

     myForm.appendChild(myInput); 
     document.body.appendChild(myForm); 
     myForm.submit(); 
     document.body.removeChild(myForm); 
    } 
    </script> 
</head> 
<body> 
<input type="button" value="posturl()" onclick="posturl()" /> 
</body> 

必須有別的東西(可能RELAT編輯打開空白標籤? WTF?),這是打破你的代碼。

Here's爲什麼它在IE中不起作用。

+0

謝謝。我最終通過將javascript函數調用從href內部更換爲onclick來解決我的問題。看起來,這樣做的伎倆。我想這個問題不是所有的腳本:) – Jarsen 2009-09-10 17:37:45

+0

@Jarsen:你會發現IE仍然搞砸了。看到我發佈的鏈接。 – 2009-09-10 17:38:12

0

這應該適用於所有的瀏覽器。但實際上我只是覺得你需要一個window.setTimeout這裏的值爲0.發生什麼事情是你試圖在JavaScript有時間「呼吸」之前訪問一個元素

嘗試:

window.setTimeout(function() { 
     myForm.submit(); 
     document.body.removeChild(myForm); 
}, 0); 
+0

我假設你的意思是用該代碼替換該方法的最後兩行?我試過了,但是即使在webkit中它也停止工作。也許我應該補充一點,它的工作方式是我在我的錨標記中使用腳本作爲href。所以當你點擊鏈接時,它會通過帖子將參數傳遞給同一頁面,更新內容。 – Jarsen 2009-09-10 17:00:45

相關問題