【Javascript 基礎】嵌入另一張HTML文檔、通過插件嵌入內容

来源:http://www.cnblogs.com/luka/archive/2016/06/14/5581322.html
-Advertisement-
Play Games

1.嵌入另一張HTML文檔 iframe 元素允許在現有的HTML文檔中嵌入另一張文檔。下麵代碼展示了iframe元素的用法: 在這個例子里,創建一個 name 屬性為 myframe 的 iframe 。這樣就創建了一個名為 myframe 的瀏覽上下文。然後就可以把這個瀏覽上下文與其他元素(具體 ...


1.嵌入另一張HTML文檔

iframe 元素允許在現有的HTML文檔中嵌入另一張文檔。下麵代碼展示了iframe元素的用法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="author" content="葉超Luka" />
    <meta name="description" content="A simple example" />
    <title>Example</title></head>
<body>
<header>
    <h1>Things I Like</h1>
    <nav>
        <ul>
            <li>
                <a href="img-map.html" target="myframe">Products I Like</a>
            </li>
            <li>
                <a href="animated-menu.html" target="myframe">Buttons I Like</a>
            </li>
        </ul>
    </nav>
</header>

<iframe name="myframe" width="600" height="270"></iframe>
</body>
</html>

在這個例子里,創建一個 name 屬性為 myframe 的 iframe 。這樣就創建了一個名為 myframe 的瀏覽上下文。然後就可以把這個瀏覽上下文與其他元素(具體是指a、form、button、input 和 base)的 target 屬性結合使用。這裡用 a 元素創建了一對超鏈接,它們會把 href 屬性中的指定的 URL 載入 iframe 。可以看到效果如下圖所示:

 

width 和 height 屬性指定了像素尺寸。src 屬性指定了 iframe 一開始應該載入並顯示的URL,而srcdoc 屬性讓你可以定義一張用於內嵌顯示的HTML 文檔。

HTML5 引入了兩個新的 iframe 元素屬性。第一個是 seamless,它指示瀏覽器把 iframe 的內容顯示得像主 HTML 文檔的一個整體組成部分。從圖中可以看出,預設情況下會有一個邊框,如果內容比 width 和 height 屬性所指定的尺寸要大,還會出現一個滾動條。第二個屬性是 sandbox,它對 HTML 文檔進行限制。應用這個屬性時如果不附帶任何值,就像這樣:

<iframe sandbox name="myframe" width="600" height="270"></iframe>

下麵這些元素就會被禁用:

1.腳本

2.表單

3.插件

4.指向其他瀏覽上下文的鏈接

 另外,iframe 的內容被視為與 HTML 文檔的其餘部分來源不同,這樣會引發額外的安全措施。可以通過定義 sandbox 屬性的值來獨立啟用各種功能,就像這樣:

<iframe sandbox="allow-forms" name="myframe" width="600" height="270"></iframe>

下圖介紹了可以使用的值:

 

2.通過插件嵌入內容

object 和 embed 元素最初都是作為擴展瀏覽器能力的一種方式,用於添加插件支持,而插件能夠處理瀏覽器不直接支持的內容。

 

2.1 使用 embed 元素

下麵代碼展示了 embed 元素的用法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Example</title>
</head>
<body>
<embed src="http://player.youku.com/player.php/sid/XMTYwMjY1MTE4OA==/v.swf"
       type="application/x-shockwave-flash" width="480" height="400"  allowFullScreen="true"  ></embed>
</body>
</html>

src 屬性指定了內容的地址,type屬性則指定了內容的MIME類型,這樣瀏覽器就知道該如何處理它。width 和 height 屬性決定嵌入內容將在屏幕上占據的空間大小。應用的其他任何屬性都會被當做插件或內容的參數。在這個例子中,應用了一個名為 allowFullScreen 的屬性,Youku視頻播放器通過它來啟用全屏觀看功能。從下圖中我們可以看到瀏覽器是如何渲染這一內容的。

2.2 使用 object 和 param元素

object 元素實現的效果和 embed 元素一樣,但它的工作方式稍有不同,並帶有一些額外的功能。

下麵代碼展示瞭如何用 object 元素嵌入前面例子中的 Youku 視頻:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Example</title>
</head>
<body>
<object width="480" height="400"
        data="http://player.youku.com/player.php/sid/XMTYwMjY1MTE4OA==/v.swf"
        type="application/x-shockwave-flash">
    <param name="allowFullScreen" value="true" />
</object>
</body>
</html>

data 屬性提供了內容的地址, type、width 和 height 屬性和在 embed 元素里的意思一致。使用 param 元素來定義將要傳遞給插件的參數,每個需要定義的參數都各自使用一個 param 元素。

 

2.3 object 指定備用內容

object 元素的一大優點是可以包含備用內容, 在指定內容不可用時顯示出來。下麵代碼提供了一個簡單的演示。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Example</title>
</head>
<body>
<object width="480" height="400"
        data="http://www.cnblogs.com/luka/joke">
    <param name="allowFullScreen" value="true" />
    <b>Sorry!</b>We can't display this content
</object>
</body>
</html>

在這個例子中,data 屬性引用了一個不存在的文件。瀏覽器會嘗試載入這個不存在的內容,如果失敗了,就會轉而顯示 object 元素中的內容。param 元素會被忽略,只剩下短語和流內容會被顯示出來,如下圖所示:

請註意,在代碼清單中有去掉 type 屬性。當type 屬性不存在時,瀏覽器會嘗試從數據本身判斷其內容類型。對於某些瀏覽器上的特定插件而言,即使數據不存在,插件也會被載入。這就意味著屏幕上顯示的是一片空白區域,而不是備用內容。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言: 1.HTML5的發展非常迅速,可以說已經是前端開發人員的標配,在電商類型的APP中更是運用廣泛,這個系列的文章是本人自己整理,儘量將開發中不常用到的剔除,將經常使用的拿出來,使需要的朋友能夠真正快速入門,如果有哪些不清楚的地方或者錯誤,歡迎聯繫我 2.更新時間沒有規律,一般會在3天左右更新一 ...
  • 一丶 流 什麼是流? 比如 react 中的單項數據流,Node.js 中的流,或者本文中的 DOM 事件流,都是流的具體體現。專業地講,流是程式輸入或輸出的一個連續的位元組序列;通俗地講,流是有方向的數據。 二丶 事件流 什麼是事件流? 假想一下,現在有一組同心圓,你把手指在最裡面的圓心上,與此同時 ...
  • 1:視頻播放器2:地理定位 我們的支持html5 的瀏覽器給我們提供一個介面(api),可以用來獲取你當前的位置. 主要是通過geolocation(地理位置),對象 ,去訪問硬體,來獲取到經緯度.. 我們獲取到的是一個經緯度。我們調用地圖。我們調用百度地圖.(街景地圖) 3: 拖拽 html5 里 ...
  • 1.prototype和__proto__ 所有對象的__proto__都指向其構造器的prototype,即constructor的原型 2.變數作用域的問題 通常認為在當前作用域中找不到變數值時會到其父作用域中去尋找,這種說法是不准確的,應該是會到創建這個函數的作用域中去找 3.settimeo ...
  • JavaScript一直沒有模塊體系,但是伴隨著ES6的到來,module隨之而來。ES6module提倡一個js文件就是一個模塊的概念,主要包括兩個命令:export和import,用於模塊向外提供介面(export)和引入其他模塊介面(import)。該隨筆分為四部分:1、ES6module概述... ...
  • 下載地址:https://www.sublimetext.com/3 安裝Package Control Zend Coding 插件 參考文章 原文鏈接:http://www.cnsecer.com/460.html 官方文檔:http://docs.emmet.io/customization/ ...
  • 最近為了實現一個屬性下拉框被Ext框架折騰了好幾天。。 所以,首先要說的是,不管你要做什麼系統、強烈建議你不要選擇Ext。據我這幾天的搜索,應該這個框架現在用的人也很少了。 Ext框架的缺陷:框架沉重、擴展性差(與其他js框架相比)、各版本差別大(Ext3、4、5不相容)。 現在進入正題,這幾天研究 ...
  • Sequelize是一個基於promise的關係型資料庫ORM框架,這個庫完全採用JavaScript開發並且能夠用在Node.JS環境中,易於使用,支持多SQL方言(dialect),。它當前支持MySQL,、MariaDB、SQLite、PostgreSQL、Sql Server 資料庫。 目前 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...