2011-07-30 36 views
0

我有一个服务器上的一个HTML文件和不同服务器上的两个文件,如下禁用其他HTML页面的JavaScript和meta标签:通过使用Javascript

a.html - 服务器1

<html><head></head><body><iframe src="http://server2/b.html"></iframe></body></html> 

b.html - 服务器2

<script type="text/javascript">/* <![CDATA[ */if (top == self || parent != top || document.location.hostname != document.domain) { top.location.replace("c.html");}/* ]]> */</script> 
<!DOCTYPE html><html lang="en" id="myworld" class="no_js"> 
<head><meta charset="utf-8" /> 
<script type="text/javascript">/* <![CDATA[ */if (top == self || parent != top || document.location.hostname != document.domain) { top.location.replace("c.html");}/* ]]> */</script><noscript> <meta http-equiv="refresh" content="0; URL=b.html?st=1" /> </noscript> 
</head><body>text is here</body></html> 

c.html - 服务器2

<html><head></head><body>Please visit later.</body></html> 

当我打开http://server1/a.html,因为它使用JavaScript和meta标签的主机是否不同重定向我重定向到http://website2/c.html

我想要做的是:我不想让b.html运行它的JavaScript来重定向并将元标记刷新为c.html

代码a.html如何在我的iframe中渲染b.html?所以它应该禁用b.html的JavaScript和元标记。

+0

这个问题可能会帮助你:[框架巴斯特巴斯特...巴斯特代码需要](http://stackoverflow.com/questions/958997/frame-buster-buster-buster-code-需要) – alexmuller

+0

有趣的黑客那里,但:我真的不确定我们应该建议人们如何禁用禁用帧的代码。即使将道德问题放在一边,如果框架破解代码得到更新,他们的网站也会突然中断。 – minimalis

回答

0

听起来像服务器2是由第三方拥有,你无法控制它。不幸的是,您可以看到的JavaScript有一个“框架突破”脚本,专门用于防止页面嵌入到iframe中,正如您正在尝试的那样。

解决方法之一是直接从Web服务器发出HTTP请求以加载页面b,然后去掉JavaScript并将其作为页面的一部分包含在内。

编辑:你真的应该问其他网站的权限,因为如果你这样做,你基本上是重新分配他们的内容。

+0

是的,这是正确的,但我有一个问题给你;我如何去掉如果我可以加载服​​务器2中的代码?我无法触及b.html和c.html的文件,但我只想使用a.html。 –

+0

你不能从Javascript执行它 - 你必须在你自己的web服务器上下载页面“b”才能工作。您需要运行在您自己的服务器上的一些服务器端代码(例如Python,ASP.NET)。 – minimalis

+0

最后我得到了在PHP中运行的方式。它现在的作品:) –