日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Win10系列:JavaScript页面导航

發布時間:2023/12/10 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Win10系列:JavaScript页面导航 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

頁面導航是在開發應用的過程中使用頻率較高的技術,其中比較常用的導航方式有多頁導航和頁內導航,采用多頁導航方式的應用程序包含一系列的頁面,在一個頁面中加入另一個頁面的鏈接地址后,單擊鏈接將跳轉到指定頁面,從而實現頁面之間的導航。而頁內導航方式是在一個頁面內根據需要加載其他頁面,使用頁內導航方式的應用程序仍然包含一系列的頁面,不同的是,這些頁面是順序被加載到一個選定的頁面區域中,而不是從一個頁面跳轉到另一個頁面。在傳統的網站開發中,通常使用多頁導航的方式,在開發基于JavaScript的Windows應用商店應用時多采用默認的頁內導航方式。在本節內容中,將首先講解兩種加載頁面的方法,然后介紹如何實現頁內導航。

19.2.1 頁面加載

在開發基于JavaScript的Windows應用商店應用時,可以使用HtmlControl和PageControl控件加載一個頁面,這兩個WinJS庫控件曾在上面的內容中提到過,HtmlControl控件接收一個包含頁面地址的對象作為參數,并根據這個地址加載相應的頁面;PageControl控件是自定義控件,可以使用WinJS.UI.Pages.define函數將一個頁面定義為PageControl控件,然后在其他頁面中使用,使用這個PageControl控件就相當于加載了該控件相對應的頁面。下面首先介紹如何使用HtmlControl控件加載一個頁面。

1HtmlControl控件

在開發Windows應用商店應用時,有時候需要在一個頁面中的某個位置顯示另一個頁面的內容,這時可以使用HtmlControl控件。HtmlControl控件具有一個名為"uri"的屬性,該屬性的值為被顯示頁面的地址,通過賦予該屬性不同的值,可以在HtmlControl控件所在的位置加載不同的頁面。

使用HtmlControl控件加載頁面的方式如下:首先在一個HTML頁面中添加一個HtmlControl控件,然后將HtmlControl控件的uri屬性設置為被加載的地址。代碼片段如下所示:

<body>

<div data-win-control="WinJS.UI.HtmlControl" data-win-options="{uri: '/contentpage.html'}"></div>

</body>

在上面的代碼中,在一個HTML頁面的body元素下定義了一個div元素,通過將div元素的data-win-control屬性設置為WinJS.UI.HtmlControl,添加了一個HtmlControl控件,接著使用data-win-options屬性設置HtmlControl控件的uri屬性,其中"/contentpage.html"是被加載頁面的地址。

2PageControl控件

PageControl控件是一種自定義控件,可以將一個頁面的內容和邏輯功能定義成一個PageControl控件,然后通過在其他頁面中添加這個PageControl控件來加載相應的內容,使用PageControl控件可以方便地在其他不同頁面中重用一個被定義好的頁面內容。下面通過一個示例介紹如何定義和使用PageControl控件。

在Visual Studio 2012中新建一個JavaScript的Windows應用商店的空白應用程序項目,將其命名為ContentLoader,在項目中新建一個名為ContentPage的文件夾,并在這個文件夾下添加一個"頁面控制"項,命名為ContentPage,添加完成之后ContentPage文件夾會包含三個文件,名稱分別為ContentPage.html、ContentPage.js、ContentPage.css。

首先在ContentPage.html文件中布局應用的前臺界面,打開ContentPage.html文件,可以發現body元素內已經默認包含了導航按鈕、頁面標題等內容,刪除body元素內的代碼然后添加一個按鈕和一個畫布,畫布作為一個圖形容器,當點擊按鈕時將在畫布上繪制一個圖形。代碼片段如下所示:

<body>

<button id="ShowRectangleButton">顯示矩形</button><br /> <br />

<canvas id="ContentCanvas"></canvas>

</body>

完成前臺界面的布局之后,接下來實現ContentPage.html頁面的邏輯功能。打開ContentPage.js文件可以發現,文件內已經默認包含了一個匿名函數,匿名函數中調用了WinJS.UI.Pages.define函數,用于創建一個PageControl控件。下面定義一個名為contentPageControl的變量,將WinJS.UI.Pages.define函數的返回值賦予該變量,用于在HTML頁面中添加PageControl控件時使用。在ready函數內為id屬性為"showRectangleButton"的元素添加click事件處理函數ShowRectangleButton_Click,代碼片段如下所示:

var contentPageControl = WinJS.UI.Pages.define("/ContentPage/ContentPage.html", {

ready: function (element, options) {

var showRectangleButton = document.getElementById("ShowRectangleButton");

showRectangleButton.addEventListener("click", ShowRectangleButton_Click);

}

});

在上面的代碼中,調用define函數之后將函數的返回值賦給contentPageControl變量,define函數接收了兩個函數參數,一個參數為ContentPage.html頁面的地址,另一個參數是一個對象,這個對象有一個ready函數,表示當頁面準備就緒之后要做的邏輯處理,在ready函數內調用document對象的getElementById函數獲取id屬性值為ShowRectangleButton的元素對象,并為元素對象注冊了單擊事件處理函數ShowRectangleButton_Click。

下面實現ShowRectangleButton_Click函數,用于在ContentPage.html頁面的畫布中繪制一個矩形,代碼片段如下所示:

function ShowRectangleButton_Click(eventInfo) {

var contentCanvas = document.getElementById('ContentCanvas');

var canvasContext = contentCanvas.getContext('2d');

canvasContext.fillStyle = '#FF0000';

canvasContext.fillRect(0, 0, 90, 100);

}

上面的代碼調用document對象的getElementById 函數獲得id屬性值為ContentCanvas的元素對象,賦值給contentCanvas變量,并通過contentCanvas變量調用元素對象的getContext函數以"2d"為參數得到用于2D繪圖的對象,賦值給canvasContext變量,接著使用canvasContext變量調用對象的fillStyle屬性設置填充顏色,并調用fillRect函數向畫布繪制一個矩形。

PageControl控件的定義包含在ContentPage.js文件的匿名函數內,由于匿名函數中定義的變量為局部變量,不能直接使用在項目的其他文件中,為此在ShowRectangleButton_Click函數的后面定義一個命名空間,以便通過命名空間引用PageControl控件。代碼片段如下所示:

WinJS.Namespace.define("ContentPage", {

pageControlName: contentPageControl

});

在上面的代碼中,調用WinJS.Namespace.define函數定義了一個命名空間ContentPage,在命名空間中添加了一個名為pageControlName的成員,將其值設置為前面定義的PageControl控件contentPageControl。

以上的過程實現了一個PageControl控件,接下來介紹如何在default.html頁面中使用PageControl控件。打開項目中的default.html文件,在文件的head元素內引用ContentPage.js文件,代碼片段如下所示:

<script src="/ContentPage/ContentPage.js"></script>

引用ContentPage.js文件之后,在default.html文件的body元素中添加一個h2和一個div元素,h2元素用于顯示default.html頁面的標題,div元素用于定義PageControl控件,代碼片段如下所示:

<body>

<h2>default頁面</h2>

<div data-win-control="ContentPage.pageControlName"}"></div>

</body>

在上面的代碼中,通過將div元素的data-win-control屬性設置為命名空間ContentPage下的pageControlName成員,添加一個PageControl控件。

啟動調試,應用程序界面上顯示"default頁面"文本和"顯示矩形"按鈕,單擊"顯示矩形"按鈕,將在按鈕的下方顯示一個紅色的矩形,如圖19-7所示:

圖19-7 運行效果圖

轉載于:https://www.cnblogs.com/finehappy/p/6645353.html

總結

以上是生活随笔為你收集整理的Win10系列:JavaScript页面导航的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。