仅通过提供src属性来定位一个iframe

3
我们的页面底部渲染了一些联盟脚本。其中一个脚本会渲染一个iframe,在某些浏览器中会破坏我们的页面。我们希望阻止这个iframe的显示,但它提供的唯一属性是“src”属性。我不能使用CSS广泛地针对iframes进行定位,因为其他生成的iframes对于各种合作伙伴都是必要的。
在他们有机会诊断出他们的错误代码之前,是否有一种方法可以使用CSS或JavaScript/jQuery来通过其src或其他方式定位并使其不显示在页面上?
坏的iframe: <iframe src="https://someurl.net/p.ashx?a=9879&b=3541" height="1" width="1" frameborder="0"> 在这个iframe内部,文档树如下:
<html>
    <head><head>
    <body>
        <pre style="word-wrap:break-word; white-space:pre-wrap;">NF</pre>
    </body>
</html>

2
当然,你可以选择所有的iframe并通过src进行筛选。或者使用CSS属性选择器。 - Felix Kling
http://reference.sitepoint.com/css/attributeselector - Jawad
2
iframe[src="https://someurl.net/p.ashx?a=9879&b=3541"] {display: none;} - Jawad
1
赞同这个很棒的CSS解决方案,但它在早期版本的IE中失败了。最好使用jQuery代替。 - Dan
@Dan:OP没有提到UA的要求,但是jQuery可以解决问题。 - Jawad
2个回答

7
这应该能解决问题:
$('iframe[@src*="someurl.net/p.ashx"]').hide();

@符号在属性选择器中有什么作用? - wirey00
糟糕,我的错。我在XPath术语中思考,其中@像那样意味着查找名为“src”的属性。在jQuery中这是不必要的。 - Marc B

3

使用 CSS 方法:

iframe[src*="someurl.net"] {
    display: none;
}

*=表示属性必须包含该值。在这种情况下,src必须包含someurl.net才能匹配。(参见文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接