情景:您的网页上有指向其他网站(例如yahoo.com)的链接,用户点击该链接。
你是否可以调用Javascript函数并在页面上加载HTML / CSS,即使它位于一个完全不同的域上?比如,在雅虎上呈现某种侧边栏?
如果不是(我认为是这种情况),还有其他方法吗?
答案 0 :(得分:1)
简短的回答是否,你不能。
你当然可以做一些变通办法,比如Blender在他的评论中建议,在网站上嵌入一个iframe,但是由于same-origin policy,如果来自iframe,你将无法访问iframe中加载的内容来自另一个域名。这适用于CSS和JavaScript,因此您无法以任何方式修改内容。
Tha说,你可以在iframe中加载内容,并在你自己的页面上和iframe旁边有一个“侧边栏”。当您点击“侧边栏”中的任何链接时,您会在iframe中加载该引用,从而创建侧边栏与iframe内容相关的“感觉”。它绝不是一个很好的解决方案,但它是我现在能想到的最接近的。
<强>更新强>
在他的评论中扩展了@kieran提供的示例,其中包含一些链接,所以这里是我上面描述的working example。
您的DOM看起来与此类似:
<div class="sidebar">
<a href="http://images.yahoo.com/" target="container">Yahoo images</a><br/>
<a href="http://news.yahoo.com/" target="container">Yahoo news</a>
</div>
<iframe name="container" class="site-container" src="http://www.yahoo.com/" />
您可以修改一些CSS以满足您的需求:
.sidebar {
width: 150px;
float: left;
background-color: #ccc;
border-right: 1px solid #888;
}
.site-container {
border: 0;
}
.sidebar,
.site-container {
height: 300px;
}