之所以寫這篇文章,主要是因為組長給提的一個新的需求——使用瀏覽器調用電腦的攝像頭,來實現即時拍照的功能。在網路上查了很多資料,由於這樣或那樣的原因,最後選擇了使用flash插件來呼叫pc的攝影機。當然,這個需求是基於B/S架構的,因此,就在想怎麼把它嵌入到前端的HTML頁面中。
題外話
當然,這裡還沒有考慮到封裝,主要是先以實現為目的,後續工作再根據業務進行抽象,封裝成通用的組件。好了,廢話不多說,看重點。
嵌入插件
使用object 和embed 標籤
代碼展示
codebase="http://fpdownload. /pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
width="490" height="390" id="Untitled-1" align="middle">
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" / >
這個方法用到的是Object 和Embed 標籤,可以看到object 的很多參數和embed 裡面的很多屬性是重複的。瀏覽器相容性,有的瀏覽器支援 object,有的支援 embed,這也是為什麼要修改 Flash 的參數時兩個地方都要改的原因。這種方法是 Macromedia 一直以來的官方方法,最大限度的保證了 Flash 的功能,沒有相容性問題。
但現在來看,它還是存在很大問題的。
首先,無法通過驗證,由於為了相容性而嵌入的 embed 標籤是不符合 W3C 的規範的。當然,如果你不在乎什麼規範不規範,另當別論。
其次,微軟由於種種原因,在 sp2 後限制了 IE 的 ActiveX 的使用模式,就是在頁面中的 ActiveX 有一個虛框,需要用戶點擊一次才能正常互動。 Flash是作為一個 ActiveX 嵌入到網頁中的,所以它也會被牽連,只有透過 JS 嵌入 Flash 才能解決這個問題。
再,沒有Flash 版本檢測,如果版本瀏覽器的flash插件版本不夠,或者不能正常顯示你的swf 文件,或者會彈出一個ActiveX 的確認安裝的框——這個框對很多用戶來說是很恐怖的。
只使用object 標籤
代碼展示
這個方法只用到了Object 標籤,其實也就是Flash satay。嵌入Flash 的方法,瀏覽器相容性也不錯,看起來幾乎完美,不過還是有問題的。你需要透過flashvars 來傳參,或者和頁面的JS 交互,會很麻煩。
再一次,有些低版的瀏覽器(如低版的Safari等)不認同這種方式,對它的相容性不好。 🎜>
程式碼展示
複製程式碼
程式碼如下:
這種方法只用到了Embed 標籤,對比效果來說,還是很不錯的,瀏覽器的兼容性也還不錯,都是可以載入的。當然,由於 embed 標籤是不符合 W3C 的規範的,所以也不建議使用這種方法。
使用JavaScript嵌入
使用 JS 來載入 Flash 插件,網路上已經有很多的方法了,而且也有很多不錯的 JS 插件供大家選擇。我這裡只拿 SWFObject 來簡單的介紹一下。
首先,你需要下載一個 SWFObject 插件包,該插件包中包含一個 JS 腳本,這個是你需要引入的腳步文件。還包括兩個 html 的例子,大家可以模仿一下。當然,你也可以去 SWFObject 的網站了解一下,網址請點 這裡 。
程式碼展示
效果圖
結束語

對比這幾種方式,我更推薦使用JS 嵌入的方式來加載Flash 插件,這種方式不僅能保證實現Flash 的所有功能,同時在各瀏覽器的兼容性方面也都表現不錯,並且JS 還可以提供更多的擴展功能,更主要是可以被更多的人復用,減少不必要的冗餘代碼。 外掛程式下載位址:
SWFObject

一致的HTML編碼風格很重要,因為它提高了代碼的可讀性、可維護性和效率。 1)使用小寫標籤和屬性,2)保持一致的縮進,3)選擇並堅持使用單引號或雙引號,4)避免在項目中混合使用不同風格,5)利用自動化工具如Prettier或ESLint來確保風格的一致性。

在Bootstrap4中實現多項目輪播的解決方案在Bootstrap4中實現多項目輪播並不是一件簡單的事情。雖然Bootstrap...

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

無法直接通過CSS修改HTML視頻的默認播放控件樣式。 1.使用JavaScript創建自定義控件。 2.通過CSS美化這些控件。 3.考慮兼容性、用戶體驗和性能,使用庫如Video.js或Plyr可簡化過程。

在手機上使用原生select的潛在問題在開發移動端應用時,我們常常會遇到選擇框的需求。通常情況下,開發者傾...

在手機上使用原生select的弊端是什麼?在移動設備上開發應用時,選擇合適的UI組件是非常重要的。許多開發者�...

使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理在Three.js中使用Octree實現房間內的第三人稱漫遊並添加碰�...

使用原生select在手機上的問題在移動設備上開發應用時,我們經常會遇到需要用戶進行選擇的場景。雖然原生sel...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)