javascript - شرح - جافا سكريبت في المتصفح لديك



التواصل بين النوافذ/علامات التبويب مع جافا سكريبت (4)

هذا السؤال له إجابة هنا:

كيف يمكنني الحصول على علامتي تبويب (أو نوافذ) على نفس النطاق تكون قادرة على التحدث مع بعضهما البعض دون الحاجة إلى مثيل نافذة واحدة للآخر.

تحرير: لماذا تم وضع علامة على ذلك كدليل عندما تم طرح هذا السؤال قبل السؤال الآخر؟


Answer #1

الطريقة الوحيدة التي يمكن أن أفكر في أن يكون استخدام شر. كل نافذة / علامة التبويب يتصل مع الخادم، والتي بدورها يتصل مرة أخرى مع النوافذ الأخرى، إلى حد كبير بنفس الطريقة يعمل دردشة غميل. إلا أنه سيكون لديك 2 ويندوز على نفس العميل، بدلا من نافذة واحدة على 2 عملاء.


Answer #2

لقد وجدت طريقة، يمكنني جعل اثنين من الأفلام فلاش على كل صفحة مع لوكالكونكتيون لاستدعاء جافا سكريبت على الصفحة الأخرى باستخدام إكسترنالينتيرفاس.

وضع هذا في AS3 سوف، وهذا هو المتلقي:

import flash.external.ExternalInterface;
import flash.net.LocalConnection;

var mLocalConnection:LocalConnection;
mLocalConnection = new LocalConnection();
mLocalConnection.connect("xivioview");
mLocalConnection.client=this;

function recieveText(textRecieved):void {
ExternalInterface.call(textRecieved);
};

وسوف المرسل:

import flash.external.ExternalInterface;
import flash.net.LocalConnection;

function sendtoview(con,val):String {
//create local connection for sending text
var sending_lc:LocalConnection;
sending_lc = new LocalConnection();
sending_lc.send("xivioview", "recieveText", val);
return "kk"
}
ExternalInterface.addCallback("sendtoview", sendtoview);

تم إعداد هذا في اتجاه واحد، وجافاسكريبت لاستخدامه:

document.getElementById("youembeddedobject").sendtoview("xivioview","alert('Hai!')")

سيؤدي ذلك إلى تنفيذ شفرة جافا سكريبت هذه في علامة تبويب المتلقي، ولكنه لن ينفذ حتى تعود إلى علامة التبويب هذه (لقد سألت من قبل سؤالا عن سبب عدم وجود رد حتى الآن)


Answer #3

أود أن يكون مجرد تنفيذ جافا سكريبت في تحميل الصفحة التي استطلاع مستمر (window.setInterval) سيسيونستور للعلم قائلا شخص ما أرسل لي رسالة ثم قراءة تلك الرسالة من سيسيونستور ثم قم بكل ما هو مطلوب.


Answer #4

تم دعم الاتصال بين سياق تنفيذ جافا سكريبت مختلفا حتى قبل HTML5 إذا كانت المستندات ذات الأصل نفسه. إذا لم يكن لديك أو لم يكن لديك إشارة إلى كائن " Window أخرى"، ثم يمكنك استخدام بوستمساجي أبي جديد عرض مع HTML5. شرحت قليلا على كلا النهجين في هذا الجواب ستاكوفيرفلو .





communication