如何使Y.io的全局事件跨实例广播

时间:2012-07-10 10:54:19

标签: io yui

我想在我的所有网页中收听所有io请求,但是,当我使用下面的语法时,我只能用yui实例监听io。

Y.on('io:success',myCallBack);

如何编写自定义方法/事件或其他内容来实现此目的?

我的问题实际上与以下网址相同:

http://yuilibrary.com/forum/viewtopic.php?p=26009

我用谷歌搜索了一段时间,但没有找到实际的答案,任何帮助将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:2)

尝试

(Y.io._map['io:0'] || new Y.IO()).publish({
    'io:success': { broadcast: 2 },
    'io:complete': { broadcast: 2 },
    etc.
});

答案 1 :(得分:0)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>io.jsp</title>
<script src="/spring-test/scripts/yui_3.5.1/build/yui/yui-min.js"></script>
</head>
<body>
test

<script>

YUI().use("io-base", function(Y){

    function onSuccess(transactionid,response,arguments){
        alert('start!');
    }
    Y.Global.on('io:start',onSuccess);

});

Y1 = YUI().use("io-base", "node", function(Y1){

    Y1.publish('io:start',{broadcast : 2});
    Y1.io("http://www.yahoo.com.hk");   

});

</script>
</body>

最后我得到了一个例子,但它仅适用于FF,Chrome但在IE中失败:

请建议是否有任何改进,谢谢。