Rumah hujung hadapan web Tutorial H5 HTML5 tetingkap/iframe silang domain pemesejan API pengenalan_html5 kemahiran tutorial

HTML5 tetingkap/iframe silang domain pemesejan API pengenalan_html5 kemahiran tutorial

May 16, 2016 pm 03:48 PM
html5 iframe

Alamat asal: API tetingkap HTML5.postMessage
Contoh dalam talian: Menggunakan tetingkap HTML5.postMessage(Sila buka konsol untuk melihat log)

Saya menulis pemalam MooTools "PostMessager" untuk merangkumkan window.postMessage, anda boleh klik di sini untuk memuat turun

Tidak ramai yang memahami API antara muka window.postMessage HTML5. window.postMessage membenarkan pemindahan merentas domain data dan maklumat antara berbilang tingkap/bingkai. Pada dasarnya, window.postMessage memainkan peranan permintaan Ajax merentas domain Sudah tentu, ia tidak memerlukan pelayan jauh untuk bekerjasama. Seterusnya, kami akan memperkenalkan cara window.postMessage berfungsi dan cara menggunakannya dalam FireFox, IE8, Opera, Safari dan Chrome

1 Message send end
Seluruh proses langkah pertama ialah menyediakan "sumber berita". Melalui sumber mesej ini, kami boleh menghantar data peringkat tetingkap (mesej) ke tetingkap (atau iframe) yang baru dibuka. Dalam contoh berikut, kekerapan menghantar mesej ke tetingkap baharu adalah sekali setiap 6 saat dan mendengar acara disediakan untuk memproses maklumat respons yang dikembalikan oleh tetingkap sasaran.

Salin kod
Kodnya adalah seperti berikut:

jejak fungsi(mesej){
var infos = Array.prototype.slice.call(arguments,0).join(" ");
if("console" in window){
console.log(infos); } else {
alert(info);
};
// Cipta tetingkap timbul
var domain = 'http://scriptandstyle.com'; var myPopup = window.open (domain '/windowPostMessageListener.html','myWindow'); Date().getTime( ));
trace('Sumber data. Mesej dihantar: ' message);
myPopup.postMessage(message,domain); },6*1000 );
fungsi bindEvent(target,noOnEventName,pengendali){
if(window.addEventListener){
target.addEventListener(noOnEventName,handler); .attachEvent){
// Fungsi tetapan mendengar IE ialah attachEvent
target.attachEvent("on" noOnEventName,handler); ;
}
};
// Pantau maklumat yang diterima
bindEvent(tetingkap,'message',function(event) {
// Hanya terima mesej daripada domain tertentu
if(event.origin !== 'http://scriptandstyle.com') return;
trace('Maklumat respons diterima: ',event.data},false); 🎜>
Pengarang artikel asal menggunakan kaedah window.addEventListener untuk mengikat acara, tetapi ralat akan dilaporkan di bawah IE (IE ialah window.attachEvent Sudah tentu, anda boleh mencipta fungsi untuk membungkus acara itu). atau gunakan perpustakaan kelas sedia, seperti MooTools atau jQuery/dojo untuk mencapainya.
Dalam contoh di atas, jika tetingkap baharu dibuka seperti biasa, kami boleh menghantar mesej melalui rujukan objek tetingkap myPopup dan nyatakan URI (protokol, nama hos, nombor port) yang mesti sepadan (jika pengguna melompat ke dalam kanak-kanak tetingkap ke halaman lain, mesej tidak akan dihantar).
Begitu juga, kami juga telah mengikat fungsi pengendali acara untuk menerima mesej. Sebagai peringatan, adalah penting untuk mengesahkan atribut asal bagi peristiwa mesej, kerana adalah mungkin untuk menerima mesej yang dihantar kepada anda oleh semua URI, supaya anda tidak akan keliru apabila berinteraksi dengan berbilang bingkai. Selepas mengesahkan asal, cara mengendalikan mesej ini bergantung pada perniagaan dan keperluan khusus anda.

Jika menggunakan iframe, maka kodnya adalah seperti berikut:





Salin kod

Kod tersebut ialah seperti berikut:


// Buat juga tetingkap lain (iframe, bingkai, set bingkai, atas, tetingkap adalah semua objek berkaitan tetingkap.)
var domain = 'http://scriptandstyle.com ';
var iframe = document.getElementById('myIFrame').contentWindow
// Sudah tentu, kaedah dipacu peristiwa juga boleh digunakan. . .
setInterval(function(){
var message = 'Masa semasa: ' (new Date().getTime()); trace('Data source.Message sent: ' message); iframe.postMessage(message,domain); //Hantar maklumat data dan tetapkan URI sasaran },6*1000); —— Dan bukan hanya objek iframe.
2. Penghujung penerimaan mesej

Langkah kedua bagi keseluruhan proses ialah menyediakan tetingkap sasaran. Apa yang perlu dilakukan oleh tetingkap destinasi ialah mendengar acara mesej, dan sudah tentu mengesahkan sumber mesej asal acara tersebut. Peringatan sekali lagi: pengendali acara mesej boleh menerima mesej yang dihantar kepadanya daripada mana-mana nama domain, jadi adalah sangat penting untuk mengesahkan asal dan hanya memproses mesej daripada senarai amanah.





Salin kod


Kodnya adalah seperti berikut:

// Pantau maklumat yang diterima
bindEvent(tetingkap,'message',function(event) {
// Hanya terima mesej daripada domain tertentu<.> jika(event.origin !== 'http://davidwalsh.name') kembali;
trace('Maklumat yang didengar: ',event.data); .source .postMessage(""Hello, kawan-kawan, saya telah menerima mesej, event.origin); . Atribut penting
peristiwa mesej ialah:
sumber - objek tetingkap/iframe yang menghantar mesej
asal - URI yang sepadan dengan tetingkap yang menghantar mesej (protokol, domain dan port, jika ditentukan)
data - maklumat data khusus
Ketiga-tiga objek ini penting untuk sistem pemesejan dan pengesahan.


Nota tentang penggunaan window.postMessage

Sama seperti semua teknologi web lain, bahayanya jelas jika digunakan secara tidak wajar (tanpa mengesahkan sumber acara). Sudah tentu, keselamatan terpulang kepada anda.
window.postMessage sangat serupa dengan PHP dalam teknologi JavaScript (haha, iklan kecil!).window.postMessage ialah teknologi yang sangat hebat, apa pendapat anda?
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sempadan Jadual dalam HTML Sempadan Jadual dalam HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Sempadan Jadual dalam HTML. Di sini kita membincangkan pelbagai cara untuk menentukan sempadan jadual dengan contoh Sempadan Jadual dalam HTML.

HTML jidar-kiri HTML jidar-kiri Sep 04, 2024 pm 04:48 PM

Panduan untuk HTML margin-kiri. Di sini kita membincangkan gambaran keseluruhan ringkas tentang HTML margin-left dan Contoh-contohnya bersama-sama dengan Pelaksanaan Kodnya.

Jadual Bersarang dalam HTML Jadual Bersarang dalam HTML Sep 04, 2024 pm 04:49 PM

Ini ialah panduan untuk Nested Table dalam HTML. Di sini kita membincangkan cara membuat jadual dalam jadual bersama-sama dengan contoh masing-masing.

Susun Atur Jadual HTML Susun Atur Jadual HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Pemegang Tempat Input HTML Pemegang Tempat Input HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Pemegang Tempat Input HTML. Di sini kita membincangkan Contoh Pemegang Tempat Input HTML bersama-sama dengan kod dan output.

Senarai Tertib HTML Senarai Tertib HTML Sep 04, 2024 pm 04:43 PM

Panduan kepada Senarai Tertib HTML. Di sini kami juga membincangkan pengenalan senarai dan jenis Tertib HTML bersama-sama dengan contoh mereka masing-masing

Memindahkan Teks dalam HTML Memindahkan Teks dalam HTML Sep 04, 2024 pm 04:45 PM

Panduan untuk Memindahkan Teks dalam HTML. Di sini kita membincangkan pengenalan, cara teg marquee berfungsi dengan sintaks dan contoh untuk dilaksanakan.

Butang onclick HTML Butang onclick HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Butang onclick HTML. Di sini kita membincangkan pengenalan, kerja, contoh dan onclick Event masing-masing dalam pelbagai acara.

See all articles