iInfo 資訊交流: 建立DOM新節點

最新消息

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

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

[公告2017/02/20] 近來有網友詢問 MultiCharts 與 Excel 畫冰火能量圖 (8)MultiCharts 與Excel 畫冰火能量圖(11) --- 更名「台股儀表板」 文章中教學檔案取得方式,有興趣的朋友可透過 Line了解詳情 (請勿以為是免費分享),Line : aminwhite5168。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,於 7/21、7/22 兩天開課,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲,5/30 前早鳥優惠票,請盡快把握機會,歡迎券商、大專院校邀約講座。

[公告2018/06/01] 台指能量儀表板教學課程,課程如網頁內容 台北班:台指能量儀表板

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
參考資料: