2012-10-31 68 views
0

我有一個js問題。這個網站:http://befwifi.bobevans.com/Mobile.aspx(不是我的網站)無法用javascript以編程方式點擊標籤

你如何模擬點擊「我同意條款」標籤與js編程?

模擬點擊必須完成真正的點擊操作。即使外觀被檢查,而不刷新頁面。

例如,這些工作都不行!

document.getElementsByTagName( 「標籤」)[0]。點擊()

$(document.getElementsByTagName( 「標籤」)[0])。點擊()

$(document.getElementsByTagName ( 「標籤」)[0])觸發( 「點擊」)

(網站使用jQuery的)

目的:

我創建一個通用的js腳本記錄上的點擊和輸入頁。然後,您可以在重新登錄該頁面時重播這些事件。我被這個頁面困住了,因爲儘管我可以輕鬆地將onclick錄製到標籤上,但是當我以重複的方式播放click()時,它與我單擊該元素時的效果並不相同。

+0

嘗試$(document.getElementsByTagName( 「標籤:EQ(1)」) .trigger(「click」) – elrado

回答

1

請嘗試單擊checkbox而不是標籤。這將做你想要的。

document.getElementById("chkAcceptTerms").click();

+0

不幸的是,頁面重新加載會導致頁面重新加載,當你手動點擊它時不會發生,我想真正的問題是:爲什麼不用$(「label」)。click()或$(「label」)。trigger(「click」)或document.getElementsByTagName(「label」)[0] .click()或任何其他操作實際上完成了手動單擊標籤時發生的操作。 – user1338795

0

您需要提高點擊相關的輸入,例如帶ID選擇器;

$("#" + $("label").attr("for")).click(); 
+0

不幸的是,這也會導致頁面重新加載,當您手動點擊它時不會發生。我想真正的問題是:爲什麼不$(「標籤」)。點擊()或$(「標籤」)。觸發(「點擊」)或document.getElementsByTagName(「標籤」)[0] .click( )或其他任何實際上完全發生在您手動點擊標籤時發生的情況。 – user1338795

0

的網頁使用jQuery Mobile的

<input id="chkAcceptTerms" type="checkbox" name="chkAcceptTerms"/> <label for="chkAcceptTerms">I AGREE TO THE TERMS</label>

模擬點擊事件試試這個:

$("#chkAcceptTerms").click(); 
+0

不幸的是,這也會導致頁面重新加載,當您手動點擊它時不會發生。我想真正的問題是:爲什麼不$(「標籤」)。點擊()或$(「標籤」)。觸發(「點擊」)或document.getElementsByTagName(「標籤」)[0] .click( )或其他任何實際上完全發生在您手動點擊標籤時發生的情況。 – user1338795