2011-02-04 105 views
2

假設我使用InternetExplorer.Application從文法上導航到已設置會話cookie的網站,如何訪問該cookie的值(僅限於記憶在這一點上)?使用InternetExplorer.Application獲取會話cookie

我能想到的唯一方法是將一些客戶端腳本添加到Document.Body.InnerHTML中,然後使用.Navigate(「javascript:functionName()」)調用該腳本。假設該函數反過來會創建一個元素,其中包含我可以在該點檢索的cookie的值。

但是,這似乎令人費解,我還沒有成功。請告訴我有一個更簡單的方法。

編輯:我的問題在另一個論壇由裏克斯特拉爾回答。顯然,我沒有仔細閱讀文檔,因爲有一個document.cookie屬性,它會給我答案,沒有任何複雜的過程。

現在,我投我自己的問題嗎? :)

回答

0

爲了完整起見,我將我的答案放在上面的問題中作爲答案。

答案很簡單,有一個document.cookie屬性,它會給出我正在尋找的值。我發現,困難在於通過InternetExplorer.Application對象查找可訪問DOM的官方文檔。 Visual Studio中的Intellisense沒有顯示這個屬性(至少對我來說),所以我認爲沒有一個。

我想我找到了DOM這裏的正式文件:

http://msdn.microsoft.com/en-us/library/ms535862(v=VS.85).aspx

,並在此明確cookie的屬性:

http://msdn.microsoft.com/en-us/library/ms533693(v=vs.85).aspx

希望這可以幫助別人避免追逐自己尾巴未來。

+0

記住你的代碼?我有這個確切的問題 – ltfishie 2012-03-13 19:53:34

0

感謝brettbaggott指點我正確的方向。這裏是有興趣的人的代碼:

Private Declare Sub Sleep Lib "kernel32" _ 
    (ByVal dwMilliseconds As Long) 

Private Function getCookie() 
    Dim myIe As Object 
    Set myIe = CreateObject("InternetExplorer.Application") 
    myIe.Visible = False 
    myIe.Navigate "http://someurl" 
    Do While myIe.Busy 
     Sleep 20 
    Loop 
    getCookie= myIe.Document.cookie 
End Function