一页中有多个easyXDM

Sid*_*rth 5 javascript easyxdm

我试图在单个父页面上使用两个easyXDM套接字但没有成功.两个套接字都连接到相同的远程域但不同的端点.父页面有两个div false_app_divdummy_app_div.以下显示代码片段 -

在父页面上,我有两个JS函数activate_false_app()activate_dummy_app().

window.loadScript = function(src, onload, onerror) {
   var head = document.getElementByTagName('head')[0];
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = src;
   if (script.readyState) {
      script.onreadystate = function() {
         var state = this.state;
         if (state === 'loaded' || state === 'complete') {
             script.onreadystate = null;
             onload();
         }
      };
   }
};
window.activate_false_app = function() {
   var exdm_url = 'http://localhost:8000/js/easyXDM/easyXDM.min.js';
   on_load_fn = function() {
      window.init_false_app_communication();
   };
   on_error_fn = function() {
      return false;
   };
   window.loadScript(exdm_url, on_load_fn, on_error_fn);
};
window.init_false_app_communication = function() {
   var false_app_socket = new easyXDM.Socket({
      remote : 'http://localhost:8000/false_app',
      swf : 'http://localhost:8000/js/easyXDM/easyXDM.swf',
      container : 'false_ap_div',
      onMessage : function(message, origin) {
         alert('false_app onMessage');
         alert(message);
      }
   });
};
window.activate_dummy_app = function() {
  var exdm_url = 'http://localhost:8000/js/easyXDM/easyXDM.min.js';
  on_load_fn = function() {
     window.init_dummy_app_communication();
  };
  on_error_fn = function() {
     return false;
  };
  window.loadScript(exdm_url, on_load_fn, on_error_fn);
};
window.init_dummy_app_communication = function() {
   var dummy_app_socket = new easyXDM.Socket({
       remote : 'http://localhost:8000/dummy_app',
       swf : 'http://localhost:8000/js/easyXDM/easyXDM.swf',
       container : 'dummy_app_div',
       onMessage : function(message, origin) {
           alert('dummy_app onMessage');
           alert(message);
       };
   });
};
Run Code Online (Sandbox Code Playgroud)

如果在父页面中,我调用activate_dummy_app()或者activate_false_app(),它可以工作 - 这两种工作完全没有关系.但是,如果我同时调用它们,那么只有其中一个工作,我在JS控制台上得到一个错误,那是一些未定义的东西(我找不到).

另外,我知道这个问题有事情做与装载因为有两个easyXDMs如果我把init_dummy_app_communicationon_load_fnactivate_false_app()(除了init_false_app_communication已经存在),那么这两个作品.

但是,我不能肯定easyXDM已经加载,所以两者activate_false_appactivate_dummy_app具有加载easyXDM,让他们在隔离工作,以及在一起.我尝试使用noConflict函数,但那里的文档很差,结果没有什么具体的.

有人遇到类似的问题或知道我在这里缺少什么?

Teo*_*ahi -2

在此页面中; https://groups.google.com/forum/#!topic/easyxdm/bOoznzUrkjE

它被提到为;

(function(){
    var easyXDM;
    // paste easyXDM's minified code here

    var rpc = easyXDM.Rpc(.....
    ...
})();
Run Code Online (Sandbox Code Playgroud)