【问题标题】:How to add a global oncomplete JavaScript method to Richfaces?如何向 Richfaces 添加全局 oncomplete JavaScript 方法?
【发布时间】:2013-08-04 09:52:46
【问题描述】:

我正在寻找一种附加 JavaScript 方法的可能性,该方法总是在每次 AJAX 请求后调用?

详细说明:我想监听列的变化(使用分页器、排序、过滤器)并在调用 Richfaces 实现后调用方法。

既然 Richfaces 4.x 是基于 jQuery 的,我想有办法用 jQuery 做到这一点吗?

【问题讨论】:

  • 向我们展示您的一些代码、到目前为止您尝试过的内容以及遇到的错误。就目前而言,您没有提供足够的信息来继续

标签: javascript jquery richfaces


【解决方案1】:

你可以使用a4j:status

例子:

<a4j:status id="generalStatus" onstop="javascript:callJsMethod();" />

【讨论】:

  • 谢谢。我没有使用&lt;a4j:status,这对我来说效果不够好,因为它使用&lt;a4j:region 破坏了我的CSS。但是,您的提示导致了解决方案!
【解决方案2】:

您也可以使用jsf.ajax

这是一个在每个 ajax 请求之后都会调用的示例:

jsf.ajax.addOnEvent(function(data) {
  console.log(data.status);

  // data.status have 3 values (begin, complete, success)
  if (data.status === 'success') {
    // do stuff
  }
});

【讨论】:

    【解决方案3】:

    这是每当执行xhr.send(); 时将调用您的代码的代码。

    XMLHttpRequest.prototype.send = function(){
    var b = XMLHttpRequest.prototype.send;
        return function () { 
            console.log('calllllled'); // your code goes here.
            b.apply(this,arguments);        
        }
    }();
    

    感谢提供的信息,这是我所能做的:D

    【讨论】:

    • 谢谢,但您的解决方案对我不起作用。 calllllled 在 AJAX 请求完成之前打印。
    【解决方案4】:

    我已经监督了扩展数据表的onready 属性。

    <rich:extendedDataTable onready="foo();" ...
    

    foo() 将在扩展数据表的每次更改后调用。

    【讨论】:

      猜你喜欢
      • 2015-03-30
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-17
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多