2016-10-07 189 views
0

我想通過JavaScript在一個特定的網頁上自動提交(登錄)表單(數據由瀏覽器重新編排)。 我設法提交非常容易使用這種測試形式,我在我的電腦上進行:JavaScript - 自動提交表單

document.forms["formID"].submit(); 

但是當我嘗試在該網頁上失敗。我在Greasemonkey的頁面上運行JavaScript,它工作正常,運行警報等,但提交不起作用。 網頁是:http://plusklub.hteronet.ba/Login

我試着用的代碼

document.addEventListener("DOMContentLoaded", function(event) {    
    document.forms["aspnetForm"].submit(); 
}); 

還使用得自頂部評論此代碼對這個問題這部分W8負載Auto-Submit Form using JavaScript 失敗意味着什麼也沒有發生。

有幾件事情我想:

console.log("test1"); 
    document.addEventListener("DOMContentLoaded", function(event) { 
     console.log("test2");   
    }); 
    console.log("test3"); 
    window.onload = function() { 
     console.log("test4");  
     } 
    } 
    console.log("test5"); 
    var fo=document.getElementById("aspnetForm"); 
    console.log(fo); 
    var bu=document.getElementsByClassName("button"); 
    console.log(bu); 
    bu.click(); 
    setTimeout(function(){ console.log("test6"); }, 3000); 

輸出如下因素:

test1helloworld.user.js:13:3 
test3helloworld.user.js:17:3 
test5helloworld.user.js:22:3 
<form name="aspnetForm" method="post" action="/Login?ReturnUrl=http://plusklub.hteronet.ba/" id="aspnetForm">helloworld.user.js:24:3 
HTMLCollection [ <input#ctl04_ctl02_btnSubmit.button> ] 
+2

當您運行代碼時,您是否等待頁面加載,因此表單存在?任何錯誤? 「失敗」具體是指什麼? – charlietfl

+0

@charlietfl,1st,你的時間。生病編輯我的問題 –

+1

如果您在該事件處理程序中添加console.log()是否實際執行? –

回答

0

不幸的是我dont't有足夠的速度添加評論,所以我要去試試我的鏡頭。

通常您需要等到頁面加載才觸發類似的事件,這應該是window.loadonload事件屬性<body>元素應該工作。

我建議創建一個函數來通過onload事件被調用,您可以嘗試獲取用戶的詳細信息(登錄名和PWD),如果正常工作,則可以在try...catch的異常處理添加.submit()調用檢查瀏覽器是提高進一步調試的錯誤。 完成後,這可能會幫助您找出代碼中發生的情況,使其無法按預期工作。

對不起,在答案中不是那麼確切,以幫助你,但我希望揭示你的問題。

+0

Thx尋求幫助。只有通知你的傢伙。不知何故,我設法提交表格。接下來的問題是提交的無限循環。因爲每次提交相同的JS代碼被觸發。我想我站在牆前,這是不能做的。 :) –

+1

你可以通過使用類似「autologon」屬性名稱的布爾值來處理cookie或查詢字符串,如果爲true,那麼你的js可以跳過它。我希望這有幫助。 – Fabricio

+0

我無法控制頁面上的任何內容,我想登錄。所以我認爲我無法做任何事情與查詢字符串!? –