webbroser如何同時打開二個需要帳號登入的網頁 |
答題得分者是:darnell
|
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
應該是可以的喔~主要要看登錄後認證的方式
如果是存在cookie那是一定可以,如果存在session好像也可以巴 你可以試著放2各webBrowser1,webBrowser2然後在其中 WebBrowser1的事件OnDocumentComplete加入 WebBrowser2.Navigate(Url); 那麼操作第一各webBrowser1時自動也會操作第二個webBrowser2 登入完成後再把WebBrowser1.OnDocumentComplete:=nil; 後續的操作就不會再導過去了就可以分開要去你自己想去的頁面了 |
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
謝謝二位大大 試過了可以,但是我要登入的網站 有frame架構,有作判斷不能單獨瀏灠某一頁還是有傳參數才能瀏 我在試試看
在請問一個問題,我有爬了有關取frame 裡資料的方法,但是frame裡又包一個frame 我就不知道怎麼取值了,而且網站表單內容產生都是用script產生的, [code xml] <!--SHOW LEGUAGE START--> *LEG* | <!--SHOW LEGUAGE END--> *DATE* | *TIME* *RE* *LEG* | *GAMENUM* | *TEAM_H* | *TEAM_C* *RATIO_MH* | *CON_RH* *RATIO_RH* | *CON_OUH* *RATIO_OUH* | *RATIO_EOO* | *CON_HRH* *RATIO_HRH* | *CON_HOUH* *RATIO_HOUH* | *RATIO_MC* | *CON_RC* *RATIO_RC* | *CON_OUC* *RATIO_OUC* | *RATIO_EOE* | *CON_HRC* *RATIO_HRC* | *CON_HOUC* *RATIO_HOUC* | | *RATIO_MN* | | [/code] 這是表單的架構,檢視原始碼表單部份只看到這一段,但實際上在網頁是一直重覆上面那段語法 我猜是不是用script 一直重覆產生**裡的好像是變數喔 麻煩各位大大教學一下 |
|||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
謝謝大大 有試出來了
我爬文過觸發網頁上的不是都是xxxxxx.item().click 那ABC 我用click好像都不會動也,onclick也是,還是要用別的屬性 那 <input> 的要怎麼用 是都不一樣嗎 謝謝 |
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
不好意思前面有關一次開二個窗的問題
我想在請教一下,我想瀏灠的網頁架構第一層是由二個frame組成 分別是check和index,而check的長度設為0所以是隱藏 在index又分三個frame,a、b、c,也就是說a b c 這三個頁面才是網頁主要的畫面,問題來了我現在只想在第二個webbroser顯示c 當我登入後沒辦法指定a b c(有確實捉到c網址) 其中一個頁面的網址,大概是有確核哪頁不存在就無法顯示吧,我想可能是第一個frame的check,那我就想退而求其次 那我在第二個webbrowser顯示整頁好了(有包括 a b c ),可是網頁上的網址不管在哪一頁都是顯示一樣的網址,所以沒辦法讓我直接可以達到跳頁的功能 版主大大 這有救嗎 謝謝 |
|||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
基本上OleObject與Document只是透由不同方法存取網頁的內容而已
一般使用Ole的方式比較方便簡單但某些情況不適用 WebBrowser1.Document as IHTMLDocument2可以透由DOM物件結構來取得網頁完整結構 可以搜尋微軟的線上使用來參考 至於你說的相同網址不同頁無法直接到達則可能因為 相同網頁中依據不同情況顯示不同網頁,其實都是同一頁只是利用不同參數(ex.HideField,Session Param)來判斷而顯示不同 或者切不同frame載入frame依據不同情況載入不同網址,利用ajax技術等等很多的作法 所以基本上會無法直接連過去那也無彷,只要利用類似前面程式Links.Item(i).Click; 等操作方法 讓網頁自己導過去就行了不然的話就要想辦法分析網頁內容去繞過檢查了會比較麻煩~~ |
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
不太懂你的意思?
html碼只是單純的文字標記碼而已用Tmemo寫好後存檔成.html 就可以使用TWebBrowser讀出來了 WebBrowser1.Navigate('c:\xxx.html') ===================引 用 polohero 文 章=================== 那版本主大大 我想到不知道delphi有沒有什麼web的元件可以用, 可以讓我在元件裡寫html,因為我已經會把資料讀出來了,也就是 把讀出來的tag放上去,讓人看起來像是在瀏覽畫面一樣,不知道有沒有 這種元件啊 謝謝 |
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
謝謝版大 關於html那個有找到跟你差不多的解法 可能是我想的太複雜了^^||
我說的那個不是script的錯誤,是那種訊息框而以,比如說登入後會彈出 你已登入的script的訊息框,如果不按確定沒辦法讓網頁繼續執行,我現在的作法是在登入二秒後模擬按下enter把那個視窗關掉但是假如網路有點慢訊息窗在二秒後才出來,那二秒時模擬的enter鍵就會出錯,還是有辦法可以強制webbrowser不執行script那也就不會跳出框來,知道這個script的名字有辦法讓這個script不執行嗎,因為其他的還要讓網頁執行 謝謝 |
|||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
|
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
不是那是在本身類別的private區段加入一各procedure
那個procedure會自己接收WM_ACTIVATE類的訊息做處理 安全性資訊那些字自己替換成你想關閉的對話框上面的標題 [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } procedure WMActivate(var Msg: TWMActivate); message WM_ACTIVATE; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} { TForm1 } procedure TForm1.WMActivate(var Msg: TWMActivate); var S: String; wnd: HWND; I: Integer; begin If Msg.Active=0 then begin wnd := Msg.ActiveWindow; I := GetWindowTextLength(wnd); SetLength(S, I 1); GetWindowText(Wnd, PChar(S), I 1); If Pos('安全性資訊', S)>0 then Sendmessage(wnd,WM_CLOSE,0,0); end; end; end. [/code] |
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
||||||||||||||||||||||||||||||||||||||||||
darnell
版主 發表:25 回覆:103 積分:145 註冊:2003-03-04 發送簡訊給我 |
基本上要只顯示部分其實就是要將下載的網頁做修改了,這裡提供你幾個方向~
另一個問題可以使用如下語法會到下載完才繼續做下面動作[code delphi]//讀取前........執行讀取 while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; //以下為讀取完要做的..... [/code]
編輯記錄
darnell 重新編輯於 2008-12-11 12:25:08, 註解 無‧
|
|||||||||||||||||||||||||||||||||||||||||
polohero
一般會員 發表:9 回覆:14 積分:4 註冊:2008-11-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |