我正在尝试为内部用户创建一个简单的Intranet样式网站,基本上只是一个顶部导航栏,我们所有的用户都面向顶部的内部网站,当他们点击每个网站时,它将打开嵌入的相关网站在页面中,将导航栏保持在顶部。
到目前为止,它只是一个简单的导航栏,在新标签页中打开每个导航栏:
<style>
#nav {
width: 100%;
float: left;
margin: -5 0 -5 -5;
padding: 0;
List-style: none;
background-color: #333333;
border-bottom: 1px solid #ccc;
border-top: 1px solid #ccc;
}
#nav li {
float: left;
}
#nav li a {
display: block;
padding: 4px 15px;
text-decoration: none;
font-family: Arial;
font-weight: none;
color: #FFFFFF;
}
#nav li a:hover {
color: #333333;
background-color: #fffFFF; }
</style>
<html>
<body>
<ul id="nav">
<li><a href="http://intranet/glpi" target="_blank">GLPI</a></li>
<li><a href="http://intranet/Redmine" target="_blank">Redmine</a></li>
<li><a href="http://intranet/sms" target="_blank">SMS gateway</a></li>
<li><a href="http://intranet/labelsregistry" target="_blank">Labels Registry</a></li>
</ul>
</body>
</html>
到目前为止,我尝试将其嵌入为iFrame和Object。 iFrame将显示,但没有内容,该对象甚至不显示!
我用来测试的iFrame是:
<iframe id="myframe" src="http://google.com>"</iframe>
这只显示一个框架,但“Internet Explorer无法显示网页”。
我是朝着正确的方向前进,还是iFrame的错误使用?
我的HTML并不是最棒的!
编辑::该站点在Windows Server 2003 SP2上的IIS 6.0上运行。
答案 0 :(得分:2)
您无法将iframe
链接到外部网站(跨域) - 尝试制作另一个页面并iframing该页面。 iframe
无法正常工作的最可能原因是因为目标网站(在本例中为Google)正在发送标头以防止其他网站出现这种情况:
X-Frame-Options: DENY
很多网站都会这样做,以防止称为UI Redressing或Click Hijacking的常见漏洞。有些网站还会包含一些框架破坏Javascript作为HTTP标头的备份安全措施。
来自MDN:
X-Frame-Options HTTP响应标头可用于指示是否允许浏览器在
<frame>
或<iframe>
中呈现页面。通过确保其内容未嵌入其他网站,网站可以使用此功能来避免点击劫持攻击。
简而言之:是的,您的iframe使用了正确的语法,但是您只能在同一个域上或允许通过标头标记使用框架的网站上使用iframe。