Flash dibenamkan dalam html Penyelesaian untuk membenamkan fail Flash dalam kod halaman web html (Bahagian 1) _HTML/Xhtml_Penghasilan halaman web

WBOY
Lepaskan: 2016-05-16 16:40:34
asal
1550 orang telah melayarinya

Sudah menjadi kebiasaan orang Cina untuk menyambut Tahun Baru sebelum hari kelima belas bulan lunar pertama Di sini saya ingin mengucapkan selamat tahun baru kepada rakan-rakan anda di taman.
Dalam beberapa hari kebelakangan ini, laman web syarikat perlu disemak Selepas "pengurangan kakitangan" syarikat pada penghujung tahun lepas, seorang perlu melakukan kerja berbilang orang, dan tiba-tiba dia merasakan beban itu. adalah berat. Tidak, ini bukan sesuatu dalam skop kerja saya Malangnya, saya telah terlibat di dalamnya. . Saya telah terlibat dalam pembangunan program pengurusan bahagian belakang untuk laman web syarikat sebelum ini, kebanyakannya memproses logik perniagaan di bahagian pelayan. Saya tidak pernah berpeluang untuk menggunakan kemahiran saya dalam pembangunan bahagian hadapan, yang saya minati tentang. Latihan adalah cara terbaik untuk menguji pengetahuan sebenar Menyelesaikan tugas praktikal yang diberikan kepada saya adalah ujian yang jarang saya pelajari melalui buku dan pelbagai bahan, tetapi tidak mendapat peluang untuk menggabungkannya bersama-sama. haha. Ada banyak kesan dakwat di bahagian depan, yang disebabkan oleh penindasan mereka untuk masa yang lama, haha.

Izinkan saya terlebih dahulu menerangkan keperluan tugas: Terdapat gambar JPG yang terdiri daripada lima bola di halaman utama tapak web syarikat Ia digunakan untuk navigasi Mengklik pada teks pada setiap bola akan membuka maklumat yang sepadan. Pada halaman kedua, terdapat versi Flash yang hampir sama sepadan dengan imej. Salah satu tugas yang diberikan kepada saya oleh bos saya ialah: apabila pelayar klien memasang pemain fail Flash, versi Flash navigasi dipaparkan, dan sebaliknya, navigasi imej JPG dipaparkan. Selepas mendapat tugas, fikirkan sejenak Sebagai pembangunan bahagian hadapan, sudah tentu anda perlu mempertimbangkan isu keserasian penyemak imbas Cara terbaik untuk merapatkan jurang antara pelayar adalah dengan menggunakan satu atau lebih rangka kerja JavaScript yang matang. kebetulan ada satu Rangka kerja JS yang sangat matang dan canggih wujud, bernama: SWFObject.js.

Kali pertama saya berhubung dengan SWFObject.js ialah V1.5nya, dan kali ini saya menggunakan V2.1 untuk menyelesaikan masalah tersebut. Secara keseluruhan, saya merasakan bahawa V2.1 adalah lonjakan yang besar berbanding dengan V1.5 V2.1 lebih sesuai dengan gaya pengaturcaraan JavaScript berorientasikan objek dari segi kod sumber rangka kerja dan proses penggunaan.

Saya akan membawa anda dalam perjalanan yang "menyusahkan" ini dari perspektif penyelidik yang baru meneroka JavaScript, sama ada anda seorang pemula seperti saya atau anda sudah mahir dalam menulis pelbagai JS Sebagai seorang veteran pengekodan, mohon belas kasihan dan harap semua orang dapat menunjukkan kepincangan pemikiran saya dan kesilapan dalam penulisan saya secara beradab.

Kod berikut ialah contoh penggunaan yang saya sesuaikan daripada dokumentasi SWFObject V1.5 (jika anda ingin mengetahui lebih lanjut tentang V1.5, sila klik pautan ini):

Salin kod
Kodnya adalah seperti berikut:


DEMO< /title> ;

>
var so = new SWFObject("http://www.pec365.com/Flash/20071113.swf", "mymovie", "304", "367", "7", "#FFFFFF") ;
so.write("flashcontent"); 🎜>
< ;/form>

Jika anda ingin memahami secara ringkas maksud setiap parameter dalam SWFObject(), sila rujuk dokumentasi, yang saya tidak akan ulangi di sini.
Saya amat mengesyorkan agar anda menyalin kod dalam "Contoh Penggunaan V1.5" ke dalam Notepad dan klik SWFObject V1.5 untuk memuat turun fail sumber rangka kerja V1.5 yang diperlukan dan mencari swfobject_source.js (versi tidak dimampatkan , nama fail versi dimampatkan ialah fail swfobject.js), namakan semula fail notepad kepada demo.html dan letakkan dalam folder yang sama dengan fail swfobject_source.js Kemudian sila pasangkannya dalam IE6/IE7 dan fox masing-masing dalam mana-mana pelayar seperti , opera, safari, navigator, chrome, dsb. dan lihat hasilnya.
Jika anda mengikut cadangan saya, anda sepatutnya mendapati bahawa gambar ini dipaparkan pada halaman dan bukannya fail Flash Mengapa ini? Jika anda kebetulan memasang siri IE pada PC anda, sila ikuti langkah di bawah: Klik ikon pelayar IE, cari menu "Tools" pada bar alat, pilih "Internet Options", dan klik "Advanced" dalam tetingkap yang dibuka. , cari pilihan "Lumpuhkan Penyahpepijatan Skrip (Internet Explorer)", nyahtanda kotak di hadapannya dan klik "OK". Selepas menyelesaikan operasi di atas, sila semak imbas halaman demo.html sekali lagi Adakah anda akan menemui kotak gesaan ralat yang muncul dengan mesej ralat berikut: "Ralat masa jalan telah berlaku. Adakah anda perlu nyahpepijat? Baris: 117 Ralat: 'null. ' adalah Kosong atau bukan objek ”

Jika anda menggunakan siri VS 2003/2005/2008 untuk pembangunan, maka saya tidak perlu mengajar anda cara menyahpepijat kod JavaScript Anda can var so = above... Buka penyahpepijat, dan kemudian nyahpepijat dan jejaknya Terus tekan F11 sehingga anda mengesan bahagian dalam fail swfobject_source.js melalui kaedah so.write() Anda akan mendapati bahawa parameter sebenar ". flashcontent" diserahkan kepada so.write(elementId) berada dalam dokumen. Nilai .getElementById("flashcontent") sentiasa batal. Mengapa ini? Temui masalahnya?

Haha, jika anda masih seorang pemula yang tidak tahu banyak tentang JavaScript, anda akan keliru seperti saya pada masa itu Selepas berkali-kali menyahpepijat dan mengubah suai kod, saya yakin bahawa apa Saya menulis Tiada ralat dalam kod JS itu sendiri Adakah terdapat masalah dengan fail swfobject_source.js yang dimuatkan secara luaran Jika ada masalah, di manakah masalahnya? Pada masa itu, saya sedang mencari cara untuk menyelesaikan ralat saya mengubah suai kod di atas menjadi contoh berikut:

Salin kod
Kod Seperti berikut:


DEMO
/javascript">
// Melaksanakan fungsi tanpa nama tidak berbeza dengan melaksanakan fungsi biasa
(function() {
var flash = document.getElementById("flashcontent");
var msg = null;
window.onload = function() {
if ( flash ) {
msg = 'Elemen memang wujud.';
msg = 'Elemen tidak wujud';
window.alert( msg ;
}; >
//www.adobe .com/go/getflashplayer">
Dapatkan pemain Adobe Flash

< /form>
Jika anda melaksanakan kod di atas, anda akan mendapati bahawa gambar ini masih dipaparkan pada halaman, dan kotak amaran yang mengandungi "Elemen tidak wujud" akan muncul Nampaknya masalah itu tidak berpunca dengan memuatkan fail swfobject_source.js.

Jika anda melihat ini, anda pasti akan mengalami kegusaran saya pada masa itu Selepas berehat sebentar, saya mengosongkan fikiran saya dan melihat ke belakang, hanya untuk mendapati bahawa intipati masalah terletak pada "HTML DOM loading. ". Dalam halaman, skrip JS di kepala halaman (iaitu, antara ) dan fail JS yang dimuatkan daripada fail luaran akan dilaksanakan sebelum DOM HTML sebenarnya dibina. Oleh itu, skrip yang dilaksanakan di kedua-dua tempat ini tidak boleh mengakses DOM yang belum wujud. Anda harus tahu sebab sebenar, iaitu semasa pelaksanaan kod JS dalam Contoh 1.1,
...
yang belum lagi dibina diakses.

Baiklah, selepas melihat ini, terdapat satu langkah terakhir yang perlu anda lakukan sendiri, iaitu hanya mengubah suai kod di atas dan menggunakan kaedah yang tidak elok untuk menyelesaikannya
Mengenai "HTML DOM" "Memuatkan " masalah, kaedah yang manakah itu? Saya rasa anda mungkin telah menekanya. Ya, ia betul-betul kaedah berikut:

Salin kod
Kodnya adalah seperti berikut:


DEMO
"text/javascript" src="swfobject_source.js">


Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan