仅使用提供的 src 属性定位 iframe
Posted
技术标签:
【中文标题】仅使用提供的 src 属性定位 iframe【英文标题】:Target an iframe with only the src attribute provided 【发布时间】:2012-11-08 20:19:27 【问题描述】:我们有一个页面在底部呈现一些附属脚本。其中一个脚本呈现了一个 iframe,它在某些浏览器中破坏了我们的页面。我们希望阻止显示此 iframe,但它提供给我的唯一属性是 src
属性。我无法使用我的 CSS 广泛定位 iframe,因为其他生成的 iframe 对各种合作伙伴来说都是必需的。
在他们有机会诊断出他们的错误代码之前,我们有没有办法通过它的 src 或使用 CSS 或 javascript/jQuery 的东西来定位这个 iframe 并阻止它显示在页面上?
糟糕的 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>
【问题讨论】:
当然,您可以选择所有 iframe 并通过src
过滤它们。或者使用 CSS 属性选择器。
reference.sitepoint.com/css/attributeselector
iframe[src="someurl.net/p.ashx?a=9879&b=3541"] display: none;
投票支持这个伟大的 CSS 解决方案,但它在早期的 IE 中失败了。最好改用jQuery
@Dan:OP 声明对 UA 没有要求,但 jQuery 可以解决问题。
【参考方案1】:
这应该可以解决问题:
$('iframe[@src*="someurl.net/p.ashx"]').hide();
【讨论】:
@
符号在属性选择器中的作用是什么?
哎呀。我的错。用 xpath 术语思考,其中@ like 表示查找名为“src”的属性。在 jquery 中是没有必要的。【参考方案2】:
css 方法是:
iframe[src*="someurl.net"]
display: none;
【讨论】:
以上是关于仅使用提供的 src 属性定位 iframe的主要内容,如果未能解决你的问题,请参考以下文章
在活动引导轮播幻灯片中定位 iframe 元素并向 SRC 属性添加哈希?
使用 jQuery 更改和加载 iframe ‘src’ 属性
使用没有 src 属性的 vuejs 在 iframe 中渲染组件