星期四, 7月 24, 2008

用javascript來保護iframe

之前處理的問題..直接寫出來分享一下..先看一下解這問題的觀念..

5624

上面文章是從這網站截圖出來的..這是解決這問題的主要地方..我們只要可以判斷.."最上層視窗"的網只是不是你想要的網址..就可以做你想要做的事..

self和window代表目前視窗..parent代表母視窗..而top代表最上層的視窗..如果頁面不含框架這東西..則這幾個對象相同..如果只含有一層框架..則parent等於top..另外..self和window代表視窗自己所以可以省略..

簡單範例:

這是top的網頁

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="main.aspx.cs" Inherits="main" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<frameset framespacing="0" border="0" rows="*,0" frameborder="0">
<frame name="main" src="a1.aspx" scrolling="auto" />
<%-- <frame name="down" src="time.aspx" scrolling="no" /> --%>
<noframes>
<body>

</body>
</noframes>
</frameset>
</html>

這是iframe

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="a1.aspx.cs" Inherits="a1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" GroupingText="test">
test<br />
test<br />
test
</asp:Panel>
</div>
</form>

<script type="text/javascript">
var url = '主要網址';

if(window == top)
{
top.location.href = url;
}
else
{
if(window == top.location.href != url)
{
top.location.href = url;
}
}
</script>

</body>
</html>

這範例..就可以讓ifram被保護著啦..厲害ㄅ..XD..不過javascript被關掉就死了..HypnotizedHypnotizedHypnotizedHypnotizedHypnotizedHypnotizedHypnotized..

參考:

沒有留言: