التعليق: إذا كنت ترغب في تحقيق نقل الرسائل المتقاطع ، فيجب عليك أولاً الاستماع إلى حدث رسالة كائن النافذة ، ثم استخدام طريقة postmessage () لكائن النافذة لإرسال الرسائل إلى Windows الأخرى. بعد ذلك ، دعونا نقدمها بالتفصيل. يمكن للأصدقاء المهتمين الرجوع إليها.
استمع إلى حدث رسالة كائن النافذةWindow.AdDeventListener ("Message" ، Function (event) {
// تعامل رمز البرنامج
}، خطأ شنيع)؛
استخدم طريقة postmessage () لكائن النافذة لإرسال الرسائل إلى النوافذ الأخرى. تعريف هذه الطريقة كما يلي:
otherwindow.postmessage (رسالة ، Targetorigin) ؛
تستخدم هذه الطريقة معلمتين: المعلمة الأولى هي نص الرسالة المرسلة ، ولكن يمكن أن يكون أيضًا أي كائن JavaScript (يتم تحويل الكائن إلى نص عبر JSON) ؛ المعلمة الثانية هي عنوان عنوان URL لنافذة الكائن التي تتلقى الرسالة. يمكنك استخدام Wildcard * لتحديد جميع العناوين في سلسلة عناوين عنوان URL ، ولكن يوصى باستخدام عنوان URL دقيق. otherwindow هو إشارة إلى كائن النافذة المراد إرسالها. يمكنك إرجاع الكائن من خلال طريقة window.open () ، أو إرجاع كائن النافذة المنسوبة إلى إطار واحد عن طريق تحديد رقم تسلسل (فهرس) أو اسم إلى صفيف الإطارات.
مثال
<! doctype html>
<html>
<head>
<meta charset = "utf-8"/>
<title> نموذج المستند الرئيسي لنقل الرسائل المتقاطع </title>
<script type = "text/javaScript" src = "http://code.jquery.com/jquery-1.6.4.min.js"> </script>
<script type = "text/javaScript">
$ (function () {
// استمع إلى أحداث الرسائل.
Window.AdDeventListener ("Message" ، Function (event) {
// تجاهل الرسائل المرسلة بواسطة صفحات أخرى غير عنوان URL المحدد.
if (event.origin! = "http://www.blue-butterfly.net") return ؛
ALERT (event.data) ؛ // عرض الرسالة.
}، خطأ شنيع)؛
$ ("#iframecontent"). تحميل (وظيفة (حدث) {
// أرسل رسالة إلى الصفحة الفرعية
هذا [0] .postmessage ("Hello" ، "http://www.blue-butterfly.net/test/") ؛
}) ؛
}) ؛
</script>
</head>
<body>
<header>
<h1> قسم الاتصالات عبر المجال </h1>
</header>
<iframe src = "http://www.blue-butterfly.net/test/"> </frame>
</body>
</html>
الرمز في الصفحة الفرعية كما يلي:
<! doctype html>
<html>
<head>
<meta charset = "utf-8"/>
<script type = "text/javaScript" src = "http://code.jquery.com/jquery-1.6.4.min.js"> </script>
<script type = "text/javaScript">
$ (function () {
Window.AdDeventListener ("Message" ، Function (event) {
if (event.origin! = "http: // lulingniu") return ؛
$ ("#console"). append (event.origin) .Append ("Message from:") .Append (event.data) ؛
// إرسال رسالة إلى الصفحة الرئيسية.
event.source.postmessage ("مرحبًا ، هناك:" + this.location ، event.origin) ؛
}، خطأ شنيع)؛
}) ؛
</script>
</head>
<body>
<p> هذا ما هو موجود في iframe. </p>
<viv> </viv>
</body>
</html>
• من خلال الاستماع إلى حدث رسالة كائن النافذة ، يمكنك تلقي الرسائل.
• من خلال الوصول إلى خاصية Origin لحدث الرسائل ، يمكنك الحصول على مصدر إرسال الرسالة (في هذا المثال ، المصدر الإرسال للصفحة الرئيسية هو ، ومصدر إرسال الصفحة الفرعية). ملاحظة: عنوان عنوان URL الخاص بمصدر إرسال وموقع الويب ليسوا نفس المفهوم. يتضمن مصدر الإرسال اسم المجال ورقم المنفذ فقط. لكي لا تتلقى الرسائل المرسلة بشكل ضار من قبل مصادر أخرى ، من الأفضل التحقق من مصدر الإرسال.
• من خلال الوصول إلى سمة البيانات لحدث الرسالة ، يمكن الحصول على محتوى الرسالة (يمكن أن يكون أي كائن JavaScript ، باستخدام JSON).
• إرسال الرسائل باستخدام طريقة postmessage ().
• عن طريق الوصول إلى خاصية مصدر الحدث للرسالة ، يمكنك الحصول على كائن الوكيل في نافذة مصدر الرسالة.