我想将网站的一个小部分放入 iframe 中,应该怎么做?通常情况下,当我为某个网站(比如雅虎)设置 iframe 时,它会获取整个网站... 假设我只想要一个小部分的网站,我应该怎么做?
是否可以在 iframe 上放置边距?
我希望在我的网站上放置一个其他网站的 iframe。(如果有意义的话)
提前感谢 :D
在大多数情况下,引用是外部的,您无法控制外部页面。因此,您必须将IFRAME内容滚动到所需位置。当然,这是不可能的。是的,有一些JavaScript技巧,但它们都是糟糕的解决方案,因为只有在页面加载后滚动才会发生。
解决方案
您可以将IFRAME包装在一个DIV中,并使用绝对TOP和LEFT CSS属性滚动DIV内容。
以下是示例:
#my-div
{
width : 400px;
height : 200px;
overflow : hidden;
position : relative;
}
#my-iframe
{
position : absolute;
top : -100px;
left : -100px;
width : 1280px;
height : 1200px;
}
这里有一个尺寸为400x200像素的DIV。现在,通过移动其中的IFRAME,您可以将其定位在正确的位置。
<div id="my-div">
<iframe src="http://www.example.com" id="my-iframe" scrolling="no"></iframe>
</div>
<iframe>
可以给你一个完整的窗口来操作。最直接的方法是让你的服务器提供一个只包含你想要显示的片段的完整页面。<div>
,并使用jQuery的load
函数来加载整个页面,并仅获取你想要的部分:$('#target-div').load('http://www.yahoo.com');
你可能需要做其他的事情,一个显著的区别是内容将成为主页面的一部分,而不是被隔离到一个单独的窗口中。
您无法通过操纵 URL 来获取页面中的部分内容。因此,您需要使用您选择的服务器端语言抓取页面内容,然后解析 HTML。从那里,您可以获取特定的 DIV 并将其打印到屏幕上。您也可以使用它来删除不想要的内容。
使用 PHP,您可以使用 file_get_contents()
读取要解析的文件,然后使用 DOMDocument
进行解析并获得您想要的 DIV。
这是基本思路。这未经测试,但应该指引您朝着正确的方向前进:
$page = file_get_contents('http://touch.facebook.com');
$doc = new DOMDocument();
$doc->loadHTML($page);
$divs = $doc->getElementsByTagName('div');
foreach($divs as $div) {
// Loop through the DIVs looking for one withan id of "content"
// Then echo out its contents (pardon the pun)
if ($div->getAttribute('id') === 'content') {
echo $div->nodeValue;
}
}