|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2008-01-10, 11:21 AM | #1 |
註冊會員
|
疑問 - VB如何自動填入網頁「下拉式選單」值?
-------------------- 閱讀本主題的最佳解答 -------------------- 如填入台灣郵政裡的鄉鎮市區下拉式選單: http://www.post.gov.tw/post/internet....jsp?ID=190102 拉下下拉式選單選擇「桃園縣」後方的下拉式選單會產生「查桃園全區」...... 如果使用VB填入select的Value值也是選值桃園縣 則後方的下列式選單沒有反應 有大大知道問題是出在哪嗎? 網頁語法: 語法:
<span class="bigger">縣市/鄉鎮【市】區</span> <select name="city" onChange="javascript:citychange();" class="select"> <option value="%" >請選擇</option> <option value="基隆市" >基隆市</option> <option value="台北市" >台北市</option> <option value="台北縣" >台北縣</option> <option value="桃園縣" >桃園縣</option> <option value="新竹市" >新竹市</option> <option value="新竹縣" >新竹縣</option> <option value="苗栗縣" >苗栗縣</option> <option value="台中市" >台中市</option> <option value="台中縣" >台中縣</option> <option value="彰化縣" >彰化縣</option> <option value="南投縣" >南投縣</option> <option value="雲林縣" >雲林縣</option> <option value="嘉義市" >嘉義市</option> <option value="嘉義縣" >嘉義縣</option> <option value="台南市" >台南市</option> <option value="台南縣" >台南縣</option> <option value="高雄市" >高雄市</option> <option value="高雄縣" >高雄縣</option> <option value="屏東縣" >屏東縣</option> <option value="台東縣" >台東縣</option> <option value="花蓮縣" >花蓮縣</option> <option value="宜蘭縣" >宜蘭縣</option> <option value="澎湖縣" >澎湖縣</option> <option value="金門縣" >金門縣</option> <option value="連江縣" >連江縣</option> </select> 語法:
Private Sub Command1_Click() Dim vDoc, vTag Dim i As Integer Set vDoc = WebBrowser1.Document For i = 0 To vDoc.All.length - 1 If UCase(vDoc.All(i).tagName) = "SELECT" Then Set vTag = vDoc.All(i) If vTag.Name = "city" Then vTag.Value = "桃園縣" End If End If Next i End Sub -------------------------------------------------------------------- Private Sub Form_Load() WebBrowser1.Navigate2 "http://www.post.gov.tw/post/internet/f_searchzone/index.jsp?ID=190102" End Sub |
送花文章: 73,
|
2008-01-11, 04:21 PM | #2 (permalink) |
管理版主
|
個人是使用 VB6
試了一天 找了google 好像"很難" "簡單辦到" ※A 不過如果你會 JavaScript 的話 可以自己寫一段 "自動點擊" 的小小副程式 再利用 WebBrowser1.Document.open WebBrowser1.Document.Write <新的原始碼> 來重新改寫原始碼 使自動點擊達成你的目標 <※A> 這裡就算用 vDoc.All(i).Click 及 vDoc.All(i).Selected = True 也都一樣 最多都與 vTag.Value = "桃園縣" 一樣 因為這些方法只能改變 vTag.Value 的值 無法達到連續變動的事件 |
送花文章: 2013,
|
向 mini 送花的會員:
|
u757207 (2008-01-14)
感謝您發表一篇好文章 |
2008-01-13, 12:16 AM | #3 (permalink) |
註冊會員
|
剛剛稍微追了一下郵局那個網頁的原始碼後發現,縣市變動的時候會去呼叫一段javascript的功能,在那段功能中則是再呼叫了另一個另一個程式,那個程式裡則存放個縣市的鄉鎮資料。
回到你的問題,你的程式裡再縣市選擇是有句 onChange="javascript:citychange();" 如果你這是你抄郵局那個網頁的那你抄的並不完全,如果要使這個功能動作你得再好好研究一下,這跟你後面那段VB的程式無關,因為你那段程式是再按了確定(submit)後才發生的。另外Form_Load()裡寫的那句是什麼意思?你能解釋一下嗎? to mini: 用 vb script是可做到的,但是他抄下來的部份程式根本跟那個下拉選單無關。 |
送花文章: 65,
|
2008-01-14, 01:59 PM | #4 (permalink) |
註冊會員
|
WebBrowser是瀏覽器物件而http://www.post.gov.tw/post/internet....jsp?ID=190102
則為台灣郵政查詢郵碼的頁面 Form_Load()的內容是指程式執行時 將網頁內容載入WebBrowser網頁瀏覽器 另關於直接登入網頁時,改變select的value的值時會呼叫javascript:citychange(),但是為何用VB直接改變value的值時,不能呢? javascript語法: 語法:
function citychange() { i = window.document.form1.city.selectedIndex; window.document.form1.cityarea.length = cityarea_account[i] - cityarea_account[i-1]; index = cityarea_account[i-1] + 1; window.document.form1.cityarea.options[0].selected=true; for (j = 0; j < window.document.form1.cityarea.length; j ++) { window.document.form1.cityarea.options[j].value = cityarea[index + j]; window.document.form1.cityarea.options[j].text = cityarea[index + j]; } } |
送花文章: 73,
|
2008-01-14, 08:59 PM | #6 (permalink) | |
管理版主
|
引用:
vb6 vDoc.parentWindow.execScript "javascript:citychange();" 及 WebBrowser1.Navigate("javascript:citychange()") 接在 vTag.Value = "桃園縣" 後都可以 (最好加個 exit for) 此帖於 2008-01-14 09:12 PM 被 mini 編輯. |
|
送花文章: 2013,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
程式 - 如何利用VB的winsock自動登入網頁 | superxboy | 程式語言討論區 | 2 | 2007-11-22 03:13 PM |
討論 - 請教如何解決網頁中下拉式選單被XP SP2阻擋的問題? | selenaloo | 軟體應用問題討論區 | 26 | 2007-03-06 10:39 PM |
討論 - 兩個下拉式選單如何建關連性???? | johnss | 論壇程式討論區 | 2 | 2007-02-03 11:54 PM |