Saya sebenarnya menulis kode ini.
Saat mencoba melakukan cross-subdomain / port comet, iframe harus memiliki nilai yang sama document.domaindengan kerangka induk. Sayangnya, browser menyimpan nama domain DAN port secara internal untuk nilai aslinya document.domain. Tapi pengambil dan penyetel di javascript tidak tahu apa-apa tentang port. Jadi masalahnya adalah ini: jika bingkai atas document.domainadalah ('example.com', 80), dan bingkai bawah adalah ('comet.example.com', 80), bagaimana Anda mendapatkan bingkai bawah ('example.com', 80)juga?
Anda tidak bisa, karena mengubah bagian nama host akan menyebabkan port diatur ke null, jadi yang terbaik yang dapat Anda lakukan adalah ('example.com', null)di bingkai bawah. Jadi bingkai atas juga perlu disetel ke nilai itu, dan setelan document.domain=document.domaintidak hanya itu. Ini mengubah representasi internal di browser dari ('example.com', 80)menjadi ('example.com', null)dan kemudian semuanya cocok dan komunikasi bingkai lintas-port / subdomain berfungsi.