使用javascript从div类中检索url

时间:2015-11-16 18:35:52

标签: javascript ios objective-c uiwebview

我正在尝试使用javascript从div类中检索url

<div class="img-cover" style="background-image: url('https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/s320x320/e15/11420829_845417035570963_433708785_n.jpg')"></div>

我已将此页面加载到iOS上的UIWebView http://websta.me/popular

我尝试检索所有图片的网址,我查找了源页面,发现我需要的所有图片都被加载到 div class 作为背景图片,如上例所示

我使用了document.getElementsByClass但不起作用。

我想将其实现到iOS应用中,从uiwebview检索图像网址并保存到nsarray

3 个答案:

答案 0 :(得分:2)

class名称获取字符串:

NSString *someHTML = [theWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('class name')[0].innerHTML;"];

答案 1 :(得分:0)

根据问题中的示例<div>标记,您需要:

NSString *someHTML = [MywebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('img-co‌​ver')[0].style.backgroundImage;"];

您在评论中提供的示例代码正在使用.innerHTML。但是,您的示例<div>标记没有任何内部HTML。内部HTML是开始和相应结束标记之间的HTML,因此如果您有<div>hello</div>,那么出现在该元素的.innerHTML属性中的内部HTML将是hello。在您的示例中,该网址实际上位于style的{​​{1}}属性中,因此您希望使用<div>获取该网址,然后您需要.style样式,即在background-image对象的backgroundImage属性中。

但是请注意,您指向的页面没有style标记中的图像,它们有锚点(<div>标记),因此您可能需要略微修改该代码,但他们仍然在<a>属性的background-image样式中拥有您想要的网址,因此该部分保持不变。

答案 2 :(得分:-2)

这可能有助于检索您正在寻找的内容:

var myLinks = document.getElementsByTagName(&#34; a&#34;);

给你的div一个这样的ID:

然后在您的脚本中,您可以使用上面的内容调用该网址,并替换&#39; a&#39;用你为div选择的名字。