国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
JavaScript and Frames, Part I: Forcing Frames
userphoto

2006.02.25

關注

JavaScript and Frames, Part I (3)

Forcing Frames

In the previous page, we showed you how to escape frames. Now we‘re going to teach you how to force frames. If your Web site is based on frames, and you don‘t want the user to be able to load an inner page in a full window, you can rebuild the frame-setting document when the user attempts to load such a page. First, take a look at the following HTML document:

<HTML>            <HEAD>            <TITLE>Canvas</TITLE>            </HEAD>            <FRAMESET COLS="200, *">            <FRAME SRC="frame1.html" NAME="leftcolumn">            <FRAMESET ROWS="100, *">            <FRAME SRC="frame2.html"  NAME="toprow">            <FRAME SRC="frame3.html" NAME="bottomrow">            </FRAMESET>            </FRAMESET>            </HTML>

 

This document is named canvas.html. The upper and left frames are used for navigation purposes, while the main frame displays the actual content of the site. canvas.html initially loads frame3.html as the content page, but other documents can be loaded in that frame as well. Let‘s assume the user loads a document named frame4.html in the main frame. Everything looks great. We now have a frame-setting document named canvas.html, and three child frames named frame1.html, frame2.html, and frame4.html.

But what happens if the user attempts to load frame4.html in a separate window? We need to force the frames. First, we‘ll add a simple script to the HEAD portion of each one of the inner documents (frame1.html, frame2.html, frame3.html, and frame4.html).

<SCRIPT LANGUAGE="JavaScript">            <!--            if (top.location.href.indexOf("canvas.html") == -1)            top.location.href = "canvas.html?pageURL&frameNum";            // -->            </SCRIPT>

 

frameNum needs to be replaced with the index of the target frame. Use 0 (the first frame) for frame1.html, 1 (the second frame) for frame2.html, and 2 (the third frame) for frame3.html and frame4.html. For example, in frame4.html the script would be:

<SCRIPT LANGUAGE="JavaScript">            <!--            if (top.location.href.indexOf("canvas.html") == -1)            top.location.href = "canvas.html?frame4.html&2";            // -->            </SCRIPT>

 

Now let‘s see the new version of canvas.html:

<HTML>            <HEAD>            <TITLE>Canvas</TITLE>            <SCRIPT LANGUAGE="JavaScript">            <!--            var ar0 = "frame1.html";            var ar1 = "frame2.html";            var ar2 = "frame3.html";            var str = location.search;            var pos = str.indexOf("&");            if (pos != -1) {            var num = str.substring(pos + 1, str.length);            window["ar" + num] = str.substring(1, pos);            }            // -->            </SCRIPT>            </HEAD>            <SCRIPT LANGUAGE="JavaScript">            <!--            document.write(            ‘<FRAMESET COLS="200, *">‘,            ‘<FRAME SRC="‘, ar0, ‘" NAME="leftcolumn">‘,            ‘<FRAMESET ROWS="100, *">‘,            ‘<FRAME SRC="‘, ar1, ‘" NAME="toprow">‘,            ‘<FRAME SRC="‘, ar2, ‘" NAME="bottomrow">‘,            ‘</FRAMESET>‘,            ‘</FRAMESET>‘            );            // -->            </SCRIPT>            </HTML>

 

We start by assigning the three default frames, frame1.html, frame2.html, and frame3.html to three variables, ar0, ar1, and ar3, respectively:

var ar0 = "frame1.html";            var ar1 = "frame2.html";            var ar2 = "frame3.html";

 

These three files are the the basis of the the frame set. Any subsequent change will be on top of these three initial frames. Then, we extract the location.search string:

var str = location.search;            

 

This string begins after the question mark at the URL. In the example above, we added a string to the canvas.html URL:

  top.location.href = "canvas.html?frame4.html&2";            

 

The string location.search will be equal to frame4.html&2 in this case. In order to find the frame number at the end of this string, we use the String‘s indexOf() method to get the &‘s position:

var pos = str.indexOf("&");

 

And we take the substring starting just after the &, and ending at the end of the URL:

  var num = str.substring(pos + 1, str.length);            

 

Now that we know both the frame number and the file name, we can assign the file to the frame:

  window["ar" + num] = str.substring(1, pos);

 

Go ahead and try loading one of the frames as a separate file. You‘ll find out that this is not possible. The whole frameset will be always forced.

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
常用的 Javascript 操作匯總 (七
使用 HTML5 canvas 繪制精美的圖形
第一階段復習~HTML5基礎夯實
HTML 5 Canvas
JavaScript圖形實例:SierPinski三角形
JavaScript圖形實例:Levy曲線及其變形
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服