2010-04-27 61 views
1
  1. 如果源代碼沒有「id =''」,但只有「name =''」,我該如何獲取HtmlElement。的document.getElementById()不工作,和的document.all( 「」)不工作(顯然,因爲沒有ID。關於WebBrowser控件的兩個問題

  2. 我如何可以模擬表單POST?

因爲我發現它很難搜索

問題1是更重要的。第二個問題我想我可以有更多的搜索得到。

+0

請問您能詳細說明這與網頁瀏覽器控制有什麼關係嗎?另外,_which_網頁瀏覽器控制?的WinForms?這與asp.net有什麼關係? – 2010-04-28 01:32:30

+0

我想到,也許是因爲你在服務器端做的第一項解決方案沒有工作。那是對的嗎?如果是這樣,我強烈建議給控制一個ID。它會爲你節省很多心痛。 – Damovisa 2010-04-28 01:33:25

回答

0

您可以通過GetElementByName獲得元素也。

+0

實際上'GetElementsByName'因爲name屬性不必是唯一的。 http://www.w3schools.com/jsref/met_doc_getelementsbyname.asp – Damovisa 2010-04-27 06:48:02

+0

不起作用。真。 – Rudi 2010-04-28 01:17:23

0

1. 可以使用document.getElementsByName。它返回一個數組所有具有指定名稱的元素(因爲名稱不必像id:s那樣是唯一的)。

2. 您可以使用form元素的submit方法來發布它。該表單既可以是頁面中的現有表單,也可以是在需要時即時創建的。

如果您想親自處理響應,而不是將其作爲文檔加載,也可以使用XmlHttpRequest對象進行發佈。

+0

document.getElementsById - >沒有這樣的事情。 – Rudi 2010-04-28 01:20:10

+0

@Rudi:哎呀。當然,我的意思是'getElementsByName'。 – Guffa 2010-04-28 05:29:01

1

GetElementsByTagName可以得到你所有的標籤,然後你可以通過返回的集合來查看你之後的元素(如果有多個)。

This後顯示如何提交表單元素。

+0

GetElementsByTagName似乎不起作用。 – Rudi 2010-04-28 01:21:33

+0

你是如何嘗試使用它的? – Glenn 2010-04-28 03:54:24

0

似乎這裏有些混亂,所以我會總結:

document對象,有多種方法可以用來定位元素:

  • document.getElementById('myid');將返回一個DOM元素(如果存在的話)的id屬性等於myid
  • document.getElementsByName('myname');將返回一個name屬性等於myname的DOM元素數組。
  • document.getElementsByTagName('div');將返回具有匹配標記的DOM元素數組 - 在本例中,文檔中的所有div

此案很重要。

這是否明確了事情?

這應該適用於所有瀏覽器,前提是您並不試圖獲取iframe內的元素或類似內容,但如果您在不同瀏覽器中遇到問題,我建議使用類似jQuery的東西。它抽象出與您不同的瀏覽器差異,因此無論使用何種瀏覽器,您都可以使用相同的語法。