2011-07-30 38 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中運行的方式。它現在的作品:) –