2011-09-27 47 views
0

我正在创建一个网页,接受来自用户的超链接并在iframe中显示该页面。在渲染页面时,我想仅显示文本和简单的颜色,就是这样。如何停止将图像或flash载入浏览器?

我想阻止所有媒体文件(如图像和Flash脚本)显示出来。

如果不是广泛的,对于初学者,我想限制范围为.gif,.jpeg,.jpg,.png,.swf。

还是有人知道一个具有类似功能的网站吗?

+0

我的理解是,你只能像“height”或“width”那样改变iframe本身的属性,但实际上不能访问iframe中的DOM。 –

+1

网址是否与网站位于同一个网域?如果是这样,一个简单的JavaScript函数可以访问iframe并移除媒体。如果_not_由于[跨站点脚本](http://en.wikipedia.org/wiki/Cross-site_scripting)安全策略,您将无法影响内容 –

回答

2

你可以编写一个简单的dom解析器,并在将它显示在iframe中之前解析页面。然后在显示它之前,你可以删除任何你想要的。

您的iframe喜欢对子级

<iframe src="your_parser.php"></iframe> 

在您的解析器,你可以使用的file_get_contents得到网页内容()或卷曲()这是你的choise(我会用卷曲)。然后你可以删除你想要的媒体。

+0

Micheal的评论是否适用于您的解决方案? –

+0

完全没有。该解决方案修改了从其他域获取的html内容。 Michaels解决方案仅适用于同一个域,并且加载后iframe内容会更改。我的解决方案是从您的服务器获取目标域内容,对其进行修改并显示修改。 – bksi

0

如果您使用Firefox,请使用Adblock Plus扩展。您可以通过过滤规则指定要阻止的项目类型。 (使用Safaribooks)的一个例子是这样的:

||techbus.safaribooksonline.com/static/201109-2191-techbus/images/6.0/*.jpg 

但是,如果你在谈论整合的功能到您的网页,以剔除内容类型的具体名单,这种做法也帮不了你。你需要拉取html源代码并去掉违规的内容类型。

0

如果您使用的是cms。你应该关掉bbcode图像,然后嵌入html