2013-12-19 31 views
0

我對JavaScript非常陌生,我試圖創建一個自動登錄組件,它將循環訪問給定的表單並找到用戶名和密碼字段(我是因爲第一個「文本」類型通常是用戶名,而第一個「密碼」類型通常是密碼),然後填寫用戶名/密碼值。我知道這不適用於所有形式,但是,這是我能想到的唯一方式(有許多形式)。這種方法會起作用嗎?使用Javascript循環瀏覽表單(自動登錄)

<script> 
for(int i = 0; i < document.forms[0].length; i++) 
    if(document.forms[0].elements[i].type == "text"){ 
     document.forms[0].elements[i].value = "someUsername"; 
     break; 
    } 
for(int i = 0; i < document.forms[0].length; i++) 
    if(document.forms[0].elements[i].type == "password"){ 
     document.forms[0].elements[i].value = "somePassword"; 
     break; 
    } 
document.forms[0].submit(); 
</script> 

回答

1

首先

int i = 0 

無效JS語法。也許你的意思是

var i = 0 

除此之外,你的代碼可能工作,取決於你得到的形式。您假定登錄字段是文檔第一個格式中的第一個文本字段,但情況可能並非如此。

也許你會考慮讓登錄場候選人的數組

var loginfieldcandidates=['name','login','username','user','userid']; 

和代替填充第一個文本字段,試圖找到第一個文本字段的名字,小寫,陣列中的任何值匹配。

+0

這是我一直在尋找的幫助!謝謝,我已經在爪哇島待了一段時間 – paulp

0

你可以嘗試一個onload函數。

因此,例如,你可以添加到您的<form>標籤onload="fillForm()"

然後,你可以創建你的頁面的標籤內的功能。

function fillForm(){ 
    document.getElementById['inputID'].value="etc etc"; 
    .. etc 

    document.getElementById("formName").submit(); 
} 

這只是實現此目的的一種方式的簡要提綱!

只是爲了澄清,這僅僅意味着當你的表單加載時,它會執行你在javascript中定義的函數,而這個函數將會填充並提交你的表單。

0

是的,它會完成這項工作。在頁面加載時運行它。