TypeScript 中的視窗導航器


Window 物件,也稱為全域性 TypeScript 物件,表示瀏覽器視窗中的當前網頁。可以使用此方法訪問和控制當前頁面的位置、歷史記錄和文件,以及其他方法和屬性。Navigator 物件是 Window 物件的一個屬性。它包含有關用於訪問網站的瀏覽器和裝置的資訊,包括使用者代理、平臺和語言。

TypeScript 的 Window.navigator 物件可以接收有關裝置瀏覽器的資訊,並對這些物件執行操作。可以透過將 Window 和 Navigator 物件識別為全域性變數在 TypeScript 中使用它們,並且 declare 關鍵字可以將 Window 和 Navigator 物件表示為全域性變數。使用者還可以使用 Navigator 介面為 navigator 物件提供型別,以實現更好的型別檢查和程式碼補全。

語法

declare var window: Window;
declare var navigator: Navigator;

然後,您可以在 TypeScript 程式碼中像這樣使用這些物件屬性和方法:

console.log(window.location.href);
console.log(navigator.userAgent);

請注意,Window 和 Navigator 物件在 Node.js 中不可用,因此您應該只在瀏覽器環境中使用它們。

示例

這是一個在 TypeScript Web 應用程式中使用 Window 和 Navigator 物件的示例,我們將學習如何使用它們。我們使用它在 HTML 頁面上顯示 URL 和瀏覽器資訊。需要執行以下步驟:

步驟

  • 我們首先將 Window 和 Navigator 物件宣告為全域性變數,以便我們可以在 TypeScript 程式碼中使用它們。

  • 然後,我們使用 document.getElementById() 方法獲取對 HTML 頁面中 <p> 元素的引用,我們希望在其中顯示 URL 和瀏覽器資訊。我們將這些引用儲存在 HTMLParagraphElement 型別的 URL 和 browser 變數中。

  • 然後,我們使用 innerHTML 屬性將這些元素的文字內容分別設定為當前 URL 和瀏覽器資訊。window.location.href 屬性返回頁面的當前 URL,而 navigator.userAgent 屬性返回一個字串,表示用於訪問頁面的瀏覽器和平臺。

TypeScript 程式碼:

這是需要編譯以獲取可以新增到 HTML 中的 JavaScript 程式碼的 TypeScript 程式碼。

declare var window: Window
declare var navigator: Navigator

let url: HTMLParagraphElement = document.getElementById(
   'url'
) as HTMLParagraphElement
let browser: HTMLParagraphElement = document.getElementById(
   'browser'
) as HTMLParagraphElement

url.innerHTML += window.location.href
browser.innerHTML += navigator.userAgent

HTML 程式碼:

這是我們新增已編譯 TypeScript 程式碼的 HTML 程式碼。

<html>
   <body>
      <h2><i>Window Navigator</i> in TypeScript</h2>
      <p id="url" style="padding: 10px; background: #d5ed9c">URL:</p>
      <p id="browser" style="padding: 10px; background: #9ceda7">Browser:</p>
      <script>
         //Compiled TypeScript File
         var url = document.getElementById('url')
         var browser = document.getElementById('browser')
         url.innerHTML += window.location.href
         browser.innerHTML += navigator.userAgent
      </script>
   </body>
</html>

示例 2

在此示例中,我們將使用 TypeScript 中的 Window Navigator 物件並執行以下步驟:

步驟

  • 我們首先將 Window 和 Navigator 物件宣告為全域性變數,以便我們可以在 TypeScript 程式碼中使用它們。

  • 然後,我們使用 document.getElementById() 方法獲取對 HTML 頁面中按鈕元素和 <p> 元素的引用,我們希望在其中顯示瀏覽器名稱。

  • 我們將這些引用儲存在 redirectBtn 和 browserName 變數中,它們分別為 HTMLButtonElement 和 HTMLParagraphElement 型別。

  • 然後,我們使用 addEventListener 方法向按鈕元素新增一個點選事件偵聽器。當單擊按鈕時,將呼叫事件偵聽器函式,使用 window.location.href 屬性將使用者重定向到不同的 URL。

  • 之後,我們使用 innerHTML 屬性將 <p> 元素的文字內容設定為瀏覽器名稱,我們從 navigator.appName 屬性獲取該名稱。當此程式碼在瀏覽器中執行時,並且當用戶單擊按鈕時,它將把使用者重定向到 "'https://tutorialspoint.tw" 網站並顯示使用者的瀏覽器名稱。

TypeScript 程式碼

這是需要編譯以獲取可以新增到 HTML 中的 JavaScript 程式碼的 TypeScript 程式碼。

declare var window: Window
declare var navigator: Navigator

let redirectBtn = document.getElementById('redirect') as HTMLButtonElement
let browserName: HTMLParagraphElement = document.getElementById(
   'browser-name'
) as HTMLParagraphElement

redirectBtn.addEventListener('click', function () {
   window.location.href = 'https://tutorialspoint.tw'
})

browserName.innerHTML = navigator.appName

HTML 程式碼

這是我們新增已編譯 TypeScript 程式碼的 HTML 程式碼。

<html>
   <body>
      <h2><i>Window Navigator</i> in TypeScript</h2>
      <button id="redirect">Redirect</button>
      <p id="browser-name" style="padding: 10px; background: #9ceda7">Browser:</p>
      <script>
         //Compiled TypeScript File
         var redirectBtn = document.getElementById('redirect')
         var browserName = document.getElementById('browser-name')
         redirectBtn.addEventListener('click', function () {
            window.location.href = 'https://tutorialspoint.tw/index.htm'
         })
         browserName.innerHTML = navigator.appName
      </script>
   </body>
</html>

請注意,navigator.appName 屬性被認為已過時,不建議在現代瀏覽器中使用。您可以使用 navigator.userAgent 屬性或使用功能檢測方法。

更新於:2023 年 2 月 21 日

3K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告