Hubungan domain halaman :
Halaman utama a.html milik domain A: www.taobao.com
Halaman iframe b.html milik domain B: www.alimama.com, dengan asumsi alamat: http://www.alimama.com/b.html
Efek realisasi :
Halaman a.html di bawah nama domain A disematkan ke halaman b.html di bawah nama domain B melalui iframe. Karena lebar dan tinggi b.html tidak dapat diprediksi dan dapat berubah, iframe di a.html perlu melakukannya berukuran adaptif.
Sifat masalahnya:
js mempunyai masalah dengan akses iframe lintas domain, karena untuk mengontrol tinggi dan lebar iframe di a.html, Anda harus terlebih dahulu membaca ukuran b.html. Demi alasan keamanan, browser membuat js Akses lintas domain dibatasi, dan tinggi serta lebar b.html tidak dapat dibaca.
Larutan:
Memperkenalkan halaman proxy c.html dan a.html milik domain yang sama A. c.html adalah halaman proxy perantara yang baik yang disediakan dalam domain A. Asumsikan alamat c.html adalah: www.taobao.com/c.html , yang bertanggung jawab untuk membaca Dapatkan nilai lebar dan tinggi di location.hash, lalu atur lebar dan tinggi iframe di a.html di domain yang sama dengannya.
Kodenya adalah sebagai berikut:
kode a.html
Pertama, b.html diperkenalkan melalui iframe di a.html
<iframe id=”b_iframe” height=”0″ width=”0″ src=”http://www.alimama.com/b.html” frameborder=”no” border=”0px” marginwidth=”0″ marginheight =”0″ scrolling=”tidak” izinkantransparency=”ya” ></iframe>
kode b.html
<skrip tipe="teks/javascript">
var b_width = Matematika.max(document.documentElement.clientWidth,document.body.clientWidth);
var b_height = Matematika.max(document.documentElement.clientHeight,document.body.clientHeight);
var c_iframe = dokumen.getElementById("c_iframe");
c_iframe.src = c_iframe.src+”#”+b_width+”|”+b_height; //http://www.taobao.com/c.html#width|height”
}
</skrip>
<!–js membaca lebar dan tinggi b.html, dan menyetel lebar dan tinggi baca ke dalam hash src dari halaman proxy perantara c.html di domain yang sama dengan a.html–>
<iframe id=”c_iframe” height=”0″ width=”0″ src=”http://www.taobao.com/c.html” style=”display:none” ></iframe>
kode c.html
<skrip tipe="teks/javascript">
var b_iframe = induk.parent.document.getElementById("b_iframe");
var hash_url = jendela.lokasi.hash;
var hash_width = hash_url.split("#")[1].split("|")[0]+"px";
var hash_height = hash_url.split(”#”)[1].split(”|”)[1]+”px”;
b_iframe.style.width = hash_width;
b_iframe.style.height = hash_height;
</skrip>
Iframe di a.html dapat disesuaikan dengan lebar dan tinggi b.html.
Masalah operasi lintas domain js serupa lainnya juga dapat diselesaikan sesuai dengan ide ini.
Teks asli: http://ued.alimama.com/?p=197