搜尋
首頁web前端html教學flash嵌入html 在html網頁程式碼中嵌入Flash檔案的解決方案(上) _HTML/Xhtml_網頁製作

中國人的習俗,沒過完正月十五就還是在過年,在這裡給園子你的朋友們拜個晚年了。
這幾天恰逢公司網站首頁需要改版,去年底公司「人員精簡」後,一個人得做多個人的活,忽然之間發覺擔子重了。這不, 本不是我工作範圍內的事情,不幸也讓我參與其中了,不幸中的幸事是這次BOSS交給我的任務,恰是我一直熱衷的前端開發任務。之前一直從事公司網站的後台管理程式開發,更多是在伺服器端處理業務邏輯,一直沒有機會在我熱衷的前端開發上施展拳腳。實踐是檢驗真知的最好途徑,透過解決分派給我的實際任務正是一次難得的大檢驗,透過書本和各種資料學習許多零散的知識,卻未得機會將他們揉合在一起來次“綜合測驗”,呵呵。前面墨跡那麼多,都壓抑久了惹得禍,呵呵。

我先來描述一下任務要求吧:公司網站首頁上有一張由五個球組成的JPG圖片,其作用是用來導航,點擊每個球上的文字後會打開相應信息的二級頁面,與該圖片對應的有一個幾乎一模一樣的Flash版本。而上司佈置給我的任務之一就是:當客戶端瀏覽器安裝了Flash檔案播放器時,顯示Flash版導航,反之顯示JPG圖片導航。拿到任務後,考慮片刻,既是前端開發,當然要考慮瀏覽器兼容問題,跨越瀏覽器之間的鴻溝最好的辦法就是使用一種或多種成熟的JavaScript框架,很幸運的是恰好有一個非常成熟精巧的JS框架存在,名曰:SWFObject.js。

第一次接觸SWFObject.js是其V1.5,而這次我解決問題使用的是V2.1,兩者之間的使用上還是有些差別的。整體上給我的感覺是V2.1較之V1.5來說,是一次大躍進,V2.1無論從框架的源碼還是使用過程來說,都更加符合物件導向的JavaScript程式設計風格。

我將以一個探索JavaScript不久的研習者的視角,帶著您一起來體驗這趟「折騰」之旅,無論您是和我一樣的新手,還是已經能夠熟練編寫各種JS程式碼的老手,望請手下留情,希望大家以文明的心態指出我思考中的短視和文字中的錯誤。

下面的程式碼是我從SWFObject V1.5的一篇說明文件( 如想進一步了解V1.5請點擊該連結即可)中改編而來的使用範例:

複製程式碼
程式碼如下:


DEMO











如果您想簡要了解SWFObject()中的各個參數的含義,請參考說明文檔,再此不在復述。
我強烈建議您,把「V1.5使用範例」中的程式碼拷貝到記事本中,並點擊SWFObject V1.5下載所需的V1.5框架的來源文件, 解壓縮後找到swfobject_source.js (未壓縮版,壓縮版文件名是swfobject.js)文件,將記事本文件更名為demo.html後與swfobject_source.js文件放置於相同文件夾下即可,然後請您分別在IE6/IE7、fox 、opera、safari、 navigator、chrome 等任一瀏覽器下運行看看結果如何。
如果您按照我的建議操作了,應當發現顯示在頁面上的是這張圖 ,而非一個Flash文件,這是為什麼呢?如果您的PC上恰好安裝了IE系列的話,請按照以下步驟操作:點擊IE瀏覽器圖標,找到工具列上的“工具”選單,選中的“Internet選項”, 在打開的視窗中點擊“高級” ,找到「停用腳本偵錯(Internet Explorer)」選項,將其前面方格中的勾選去掉,點選「確定」。請在完成上述操作之後,再次瀏覽demo.html頁面,是否會發現彈出一個錯誤提示框,其提示錯誤訊息如下:「出現了運行時錯誤,是否需要進行調試。行:117 錯誤:'null'為空或不是物件。打一個debugger,然後調試跟踪進去,不停按F11後直到通過so.write()方法追踪到swfobject_source.js文件的內部,您會發現傳遞給so.write(elementId)的實參"flashcontent"在document .getElementById("flashcontent")時值一直為null,這又是為什麼?發現問題所在了嗎?

呵呵,如果您還是一名對JavaScript了解不多的新手,那麼會和當時的我一樣頓時陷入迷茫之中,在經過多次的調試和修改代碼後, 我堅信自己編寫的JS程式碼本身是不存在錯誤的,難道是外部載入的swfobject_source.js檔案有問題,如果有問題,那問題究竟出在哪裡了?當時,我是這樣尋求解決錯誤的方法,我將上述程式碼修改為以下範例:



複製程式碼程式碼如下:
DEMO









如果您執行了上述程式碼就會發現,依舊發現顯示在頁面上的還是這張圖 ,並且彈出一個含有「The element does not exist"的警告框,看來問題並非出自外部加載的swfobject_source.js檔案上。

如果您看到這裡,定會體驗我當時的懊惱,在稍微休息後,清醒下腦子回頭再看,才發現問題的本質出在“HTML DOM的加載”上。在一個頁面中,處於頁面頭部(即之間)中的JS腳本以及從外部文件加載的JS文件會在HTML DOM 真正構造之前就執行了。因此這兩個地方執行的腳本並不能存取還不存在的DOM。您應該知道真正的原因了,那就是範例1.1 中的JS程式碼執行過程中,存取了還未來得及構造的


好了,看到這裡,還有最後一個步驟需要您親自動手操作一下,就是將上述程式碼簡單的修改一下,採取一種並不優雅的方法解決
關於「HTML DOM的加載」的問題,到底是哪種方法呢,我想大家或許應該猜想到了,對,正是如下這種方式:

複製程式碼
程式碼如下:


DEMO

_fcksavedurl=""swfobject_source.js">"









前面洋洋灑灑上千字,只是在描述我走了多少彎路,在解決問題的過程中遇見那些麻煩,從麻煩中解脫出來運用了那些學習的
知識,又從中學習了那些知識,雖然有點累贅之嫌,但是您是否如我一樣也有不一樣的收穫呢?
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?Mar 04, 2025 pm 12:32 PM

公眾號網頁更新緩存,這玩意兒,說簡單也簡單,說複雜也夠你喝一壺的。你辛辛苦苦更新了公眾號文章,結果用戶打開還是老版本,這滋味,誰受得了?這篇文章,咱就來扒一扒這背後的彎彎繞繞,以及如何優雅地解決這個問題。讀完之後,你就能輕鬆應對各種緩存難題,讓你的用戶始終體驗到最新鮮的內容。先說點基礎的。網頁緩存,說白了就是瀏覽器或者服務器為了提高訪問速度,把一些靜態資源(比如圖片、CSS、JS)或者頁面內容存儲起來。下次訪問時,直接從緩存裡取,不用再重新下載,速度自然快。但這玩意兒,也是個雙刃劍。新版本上線,

如何使用HTML5表單驗證屬性來驗證用戶輸入?如何使用HTML5表單驗證屬性來驗證用戶輸入?Mar 17, 2025 pm 12:27 PM

本文討論了使用HTML5表單驗證屬性,例如必需的,圖案,最小,最大和長度限制,以直接在瀏覽器中驗證用戶輸入。

如何高效地在網頁中為PNG圖片添加描邊效果?如何高效地在網頁中為PNG圖片添加描邊效果?Mar 04, 2025 pm 02:39 PM

本文展示了使用CSS為網頁中添加有效的PNG邊框。 它認為,與JavaScript或庫相比,CSS提供了出色的性能,詳細介紹瞭如何調整邊界寬度,樣式和顏色以獲得微妙或突出的效果

HTML5中跨瀏覽器兼容性的最佳實踐是什麼?HTML5中跨瀏覽器兼容性的最佳實踐是什麼?Mar 17, 2025 pm 12:20 PM

文章討論了確保HTML5跨瀏覽器兼容性的最佳實踐,重點是特徵檢測,進行性增強和測試方法。

< datalist>的目的是什麼。 元素?< datalist>的目的是什麼。 元素?Mar 21, 2025 pm 12:33 PM

本文討論了html< datalist>元素,通過提供自動完整建議,改善用戶體驗並減少錯誤來增強表格。Character計數:159

< meter>的目的是什麼。 元素?< meter>的目的是什麼。 元素?Mar 21, 2025 pm 12:35 PM

本文討論了HTML< meter>元素,用於在一個範圍內顯示標量或分數值及其在Web開發中的常見應用。它區分了< meter>從< progress>和前

> gt;的目的是什麼 元素?> gt;的目的是什麼 元素?Mar 21, 2025 pm 12:34 PM

本文討論了HTML< Progress>元素,其目的,樣式和與< meter>元素。主要重點是使用< progress>為了完成任務和LT;儀表>對於stati

我如何使用html5< time> 元素以語義表示日期和時間?我如何使用html5< time> 元素以語義表示日期和時間?Mar 12, 2025 pm 04:05 PM

本文解釋了HTML5< time>語義日期/時間表示的元素。 它強調了DateTime屬性對機器可讀性(ISO 8601格式)的重要性,並在人類可讀文本旁邊,增強Accessibilit

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境