最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2017年10月8日 星期日

建立DOM新節點

最近在處理一個JS例子,由於想不出方法,上網找了一下沒有比較正式解法,卻找到一個骯髒解法,不過也是完成了,方法就是透過新增新節點來達成,記錄一下程式內容以免忘記。
Sub 新增節點()
    Dim ie As Object, doc As Object, ele As Object
    
    Set ie = CreateObject("InternetExplorer.Application")

    ie.navigate "about:blank"
    ie.Visible = False

    While ie.Busy
        DoEvents
    Wend
    
    Set doc = ie.Document
    
    Set ele = doc.createElement("input")
    ele.ID = "results"
    doc.body.appendChild (ele)

    qt = """"
    doc.parentWindow.execScript ("document.all[" & qt & "results" & qt & "].value = JSON.stringify(" & qt & "hello 123" & qt & ")")
    result = doc.getElementById("results").Value
    Debug.Print result
    ie.Quit
    
    Set ele = Nothing
    Set doc = Nothing
    Set ie = Nothing
End Sub
參考資料: