当它在其他(所有)浏览器中工作时,我对它在 Firefox 中不起作用的原因感到有点困惑。
初始化 EventSource 并注册一个监听器:
var output = new EventSource('/subscribe');
output.addEventListener('shell_stream', function(e) {
$('#shell-output').append(e.data + "<br/>");
}, false);
然后在页面加载时,我正在查看查询字符串,如果有文件和运行操作,我将它们发送到服务器(通过 ajax),服务器将数据发送回上面注册的侦听器。
调试了很多脚本。它确实发送请求并接收有效响应,并且服务器确保向侦听器发送数据。
但是,在 Firefox 上,侦听器不会以任何方式做出反应。
值得注意的是,如果用户单击“运行”按钮,侦听器的工作原理是完美的,如果在查询字符串中找到文件和运行,该按钮调用的函数与页面加载时调用的函数完全相同。
此外,如果我触发alert()
页面加载并用户单击它,侦听器将起作用!
这是在各种浏览器中尝试的实时链接:
http://cibox.org/slivu/stackoverflow?file=extract-image.rb&run=true
谢谢你。