【发布时间】:2017-06-24 20:18:56
【问题描述】:
我完全被难住了。我正在使用 VBA 的 Internet Explorer 对象解析谷歌图像搜索的 HTML。当我使用 Chrome 的内置工具检查元素时,我得到的 HTML 如下所示:
<a href="/imgres?imgurl=...&imgrefurl=...&docid=...&tbnid=...&vet=...&w=1366&h=768&bih=638&biw=1366&q=cats&ved=...;iact=mrc&uact=8" jsaction="fire.ivg_o;mouseover:str.hmov;mouseout:str.hmou" class="rg_l" rel="noopener" style="background: rgb(200, 190, 194); width: 270px; height: 168px; left: 0px;"><img class="rg_ic rg_i" data-sz="f" name="z7O-qKoPKHzyaM:" alt="Image result for cat's" jsaction="load:str.tbn" onload="google.aft&&google.aft(this)" src="data:image/jpeg;base64,/9j/4AAQ..." style="width: 300px; height: 168px; margin-left: -15px; margin-right: -15px; margin-top: 0px;"><div class="_aOd rg_ilm"><div class="rg_ilmbg"><span class="rg_ilmn"> 1366 × 768 - wallpapercave.com </span></div></div></a>
或者作为图片(抱歉,不知道如何格式化)
样式集中有一个“背景”值,我想得到它。但是我似乎无法在任何地方找到它。当我使用 Chrome 的检查工具浏览“属性”时,没有“样式”选项可供查看。 InnerHTML 不包含一些样式元素,但不包含“背景”。
并通过 VBA
HTMLelement.getAttribute("Background") = ""
HTMLelement.Style.Background = ""
HTMLelement.Style.BackgroundColor = ""
这是怎么回事,为什么我在使用网页检查器的时候可以看到一个背景属性,但是通过上面的方法却不能访问呢?
【问题讨论】:
-
@GustafGunér 没有使用 JS,这是一个 VBA 应用程序(我猜它使用了一些对面向对象语言通用的方法)。作为总结,我将一个名为
objIE的InternetExplorer.Application导航到谷歌图片页面,等待它加载,然后:Set elem = objIE.document.getElementById("rg_s").getElementsByTagName("IMG")(0).ParentElement其中elem是我在问题中提到的IHTMLElement(我传播了它多行,但就是这样)