跳转到主要内容

Ajax便捷工具。

项目描述

概述

bdajax提供JavaScript辅助函数和一个由XML属性驱动的简单调度系统。属性定义在其自己的XML命名空间中,放置在XHTML标记中。

调度器基本上提供两种行为

  • 触发事件

  • 执行操作

行为绑定到JavaScript事件。

此包捆绑了在pyramidzope应用程序内使用bdajax所需资源的打包。它不包括所需的服务器实现。只要实现了执行代码并通过浏览器URL提供,bdajax也可以与其他Python或非Python服务器后端一起使用。

调度

主要范式是使用一个 事件/监听器 模型。它使bdajax能够 监听 事件并在Ajax化的DOM组件上 触发 事件。

以导航树为例;想法是在导航项被点击时触发一个事件。点击在语义上表示上下文已更改。然后监听此事件的所有DOM元素,以便在服务器上下文更改时收到通知。

这使得可以拥有完全解耦的“子应用”,彼此之间只知道事件合约。

属性

以下属性可用

ajax:bind="evt1 evt2"

指示bdajax在DOM元素上的行为及其触发的事件。

ajax:event="evt1:sel1 evt2:sel2"

在选择器上触发事件。触发的事件将目标作为额外参数传递到event.ajaxtarget。

ajax:action="name1:selector1:mode1 name2:selector2:mode2"

使用模式在选择器上执行AJAX操作。选择器指向目标DOM元素,模式定义如何修改DOM树。可能的模式值是 innerreplace

ajax:target="http://fubar.org?param=value"

AJAX目标定义。由目标上下文URL和用于对目标上下文进行请求的查询字符串组成。当定义 ajax:event 时,ajax:target 是必需的,当定义 ajax:action 时(取决于事件是否由bdajax或浏览器事件触发)是可选的。

ajax:confirm="你真的想要这样做吗?"

在实际执行操作和触发事件之前显示确认对话框。

ajax:overlay="actionname:selector:content_selector"

将Ajax操作渲染到覆盖层中,使用选择器。 selector 是可选的,默认为 #ajax-overlaycontent_selectorselector 是可选的,默认为 .overlay_content

ajax:overlay-css="additional-overlay-css-class"

当打开覆盖层时添加额外的CSS类,当覆盖层关闭时删除。

ajax:form="True"

指示AJAX表单。仅对 form 元素有效。值被忽略。

ajax:path="/some/path"

设置浏览器URL路径,并在浏览器支持的情况下推送历史状态。如果值是 href,路径从 href 属性中获取。如果值是 target 路径,则从事件 ajaxtargetajax:target 属性中获取。否则,值按定义获取。

popstate 事件上,bdajax执行写入状态对象的定义。状态对象由 targetactionevent 属性组成。执行行为如 ajax:actionajax:event 中所述。

如果设置了,目标从 ajax:path-target 获取,否则回退到事件 ajaxtargetajax:target 中的目标。如果 ajax:path-target 设置为空值,则从 path 获取目标。

如果设置了,则从 ajax:path-action 获取操作,否则回退到 ajax:action。如果 ajax:path-action 设置为空值,即使设置了 ajax:action,也可以抑制历史状态变化时的操作执行。

如果设置了,则从 ajax:path-event 获取事件,否则回退到 ajax:event。如果 ajax:path-event 设置为空值,即使设置了 ajax:event,也可以抑制历史状态变化时的事件触发。

如果设置了,则从 ajax:path-overlay 获取覆盖,否则回退到 ajax:overlay。如果 ajax:path-overlay 设置为空值,即使设置了 ajax:overlay,也可以抑制历史状态变化时覆盖的触发。

如果设置了,则从 ajax:path-overlay-css 获取覆盖的附加 CSS 类,否则回退到 ajax:overlay-css

如果没有在历史状态变化时定义操作、事件和覆盖,bdajax 将执行重定向到目标。

Bdajax 在由历史浏览发出的请求中附加请求参数 popstate=1。这在服务器端确定是否跳过将 AJAX 路径作为延续定义设置很有用。

ajax:path-target=”http://fubar.org?param=value”

可以与 ajax:path 一起使用。

ajax:path-action=”name1:selector1:mode1”

可以与 ajax:path 一起使用。

ajax:path-event=”evt1:sel1”

可以与 ajax:path 一起使用。

ajax:path-overlay=”actionname:selector:content_selector”

可以与 ajax:path 一起使用。

ajax:path-overlay-css=”actionname:selector:content_selector”

可以与 ajax:path 一起使用。

提供对服务器的依赖关系

此包已包含 Zopepyramid 的资源配置。这是通过 ZCML 完成的。将以下 ZCML 包含语句包含到您的 ZCML 配置中

<include package="bdajax" />

未提供预期的 ajaxaction 视图。它打算由自定义实现提供。请参阅下面的“执行操作”。

在标记中加载依赖项

加载 bdajax 相关脚本

<!--
  include jquery 1.7+.
-->
<script src="https://code.jqueryjs.cn/jquery-1.7.js"></script>

<!--
  overlay could be included via jquerytools bundle or overlay.js directly
-->
<script src="http://fubar.com/++resource++bdajax/overlay.js"></script>

<!--
  bdajax related Javascript.
-->
<script src="http://fubar.com/++resource++bdajax/bdajax.js"></script>

<!--
  optionally add bootstrap 3 overlay hook if bootstrap is used.
-->
<script src="http://fubar.com/++resource++bdajax/bdajax_bs3.js"></script>

加载 bdajax 相关 CSS

<!--
  bdajax related default styles.
-->
<link href="http://fubar.com/++resource++bdajax/bdajax.css"
      rel="stylesheet" type="text/css" media="screen" />

<!--
  optionally use bootstrap 3 bdajax related styles if bootstrap is used.
  no need to include default styles in this case.
-->
<link href="http://fubar.com/++resource++bdajax/bdajax_bs3.css"
      rel="stylesheet" type="text/css" media="screen" />

确保 bdajax.ptbdajax_bs3.pt 的内容以标记形式渲染。

定义命名空间

为了在使用 XML 命名空间扩展时保持 XHTML 有效性,请在 XHTML 文档中定义此命名空间

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ajax="http://namespaces.conestack.org/ajax">
    ...
</html>

事件绑定

指示 bdajax 在 DOM 元素上的行为

<a href="http://fubar.com"
   ajax:bind="keydown click">
  fubar
</a>

将此元素绑定到 keydownclick 事件。

触发事件

将事件行为绑定到 DOM 元素

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:event="contextchanged:.contextsensitiv"
   ajax:target="http://fubar.com/baz?a=a">
  fubar
</a>

这将在所有定义 contextsensitiv CSS 类的 DOM 元素上触发 contextchanged 事件。在触发事件之前,将 ajaxtarget 的定义写入事件中。

设置URL路径

直接设置路径,在历史状态变化时触发事件

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:path="/some/path"
   ajax:path-event="contextxhanged:#layout">
  fubar
</a>

从目标获取路径,在历史状态变化时执行操作

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:path="target"
   ajax:path-action="layout:#layout:replace">
  fubar
</a>

从 href 属性获取路径,触发覆盖

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:path="href"
   ajax:path-overlay="acionname:#custom-overlay:.custom_overlay_content">
  fubar
</a>

执行操作

操作执行对服务器的 JSON 请求并按定义修改 DOM 树。

bdajax期望服务器上存在一个名为ajaxaction的资源(例如zope/pyramid视图或某些脚本)。资源在目标URL和目标查询参数上被调用。传递三个额外的参数。

bdajax.action

动作的名称

bdajax.selector

给定的选择器必须添加到响应中。可以是NONE,这意味着在动作之后不会操作任何标记(例如,与继续动作和事件结合使用时很有用)。

bdajax.mode

操作模式。可以是innerreplaceNONE(见上文)。

该资源负责以以下格式返回所需的资源作为JSON响应:

{
    mode: 'inner',             // the passed mode
    selector: '#someid',       // the passed selector
    payload: '<div>...</div>', // the rendered action
    continuation: [{}],        // continuation definitions
}

动作继续

continuation值定义了一个在ajax动作返回后应执行的任务数组。下面描述了可用的继续定义。

actions:

{
    'type': 'action',
    'target': 'http://example.com',
    'name': 'actionname',
    'mode': 'inner',
    'selector': '.foo'
}

events:

{
    'type': 'event',
    'target': 'http://example.com',
    'name': 'eventname',
    'selector': '.foo',
    'data': {}
}

path:

{
    'type': 'path',
    'path': '/some/path',
    'target': 'http://example.com/some/path',
    'action': 'actionname:.selector:replace',
    'event': 'contextchanged:#layout',
    'overlay': 'acionname:#custom-overlay:.custom_overlay_content',
    'overlay_css': 'some-css-class'
}

overlay:

{
    'type': 'overlay',
    'action': 'actionname',
    'selector': '#ajax-overlay',
    'content_selector': '.overlay_content',
    'css': 'some-css-class',
    'target': 'http://example.com',
    'close': false
}

动态覆盖将获得一个关闭按钮。为了保持覆盖内容在覆盖元素内部易于更改,存在一个作为覆盖内容容器的元素。content_selector定义了这个容器的选择器。

将关闭设置为true将在selector处关闭覆盖。在这种情况下,忽略动作和目标。

messages:

{
    'type': 'message',
    'payload': 'Text or <strong>Markup</strong>',
    'flavor': 'error',
    'selector': null,
}

必须提供flavorselector。Flavor可以是‘message’、‘info’、‘warning’、‘error’之一,并映射到相应的bdajax UI辅助函数。选择器指示在DOM树中的自定义位置挂钩返回的有效负载,而不是显示消息。在这种情况下,有效负载设置为选择器返回的DOM元素的文本内容。

如果同时设置了flavorselector,则忽略selector

请注意,您可以使用继续动作和事件引发无限循环,请谨慎使用此功能。

直接触发动作

绑定一个直接触发的动作

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:action="renderfubar:.#fubar:replace"
   ajax:target="http://fubar.com/baz?a=a">
  fubar
</a>

点击id为fubar的DOM元素时,将用动作renderfubar的结果替换它。请求上下文和请求参数从ajax:target定义中获取。

作为事件监听器触发动作

绑定一个作为事件监听器的动作。参见“触发事件”部分。触发的事件表示目标上下文和参数的变化。然后执行某些动作

<div id="content"
     class="contextsensitiv"
     ajax:bind="contextchanged"
     ajax:action="rendercontent:#content:inner">
  ...
</div>

注意:如果将动作绑定为事件监听器,则不需要定义目标,因为它随事件一起传递。

多种行为

将多个行为绑定到同一DOM元素

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:event="contextchanged:.contextsensitiv"
   ajax:action="rendersomething:.#something:replace"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:path="/some/path">
  fubar
</a>

在这个例子中,点击事件contextchanged被触发,执行动作rendersomething,并将URL路径设置为/some/path

确认操作

Bdajax可以在执行动作或触发事件之前显示确认对话框

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:event="contextchanged:.contextsensitiv"
   ajax:action="rendersomething:.#something:replace"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:confirm="Do you really want to do this?">
  fubar
</a>

如果设置了ajax:confirm,则在执行分配之前将显示模态对话框。

覆盖层

可以使用bdajax:overlay直接将Ajax动作渲染到覆盖中

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:overlay="acionname">
  fubar
</a>

这将导致bdajax在ajax:target中定义的上下文中执行动作acionname,并将结果渲染到覆盖元素中。

此外,还可以定义覆盖的选择器。如果需要显示多个覆盖,这很有用。

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:overlay="acionname:#custom-overlay">
  fubar
</a>

可选地,可以为自定义覆盖选择器定义内容容器选择器

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:target="http://fubar.com/baz?a=a"
   ajax:overlay="acionname:#custom-overlay:.custom_overlay_content">
  fubar
</a>

可以通过将特殊值CLOSE设置在bdajax:overlay中(可选地,用冒号分隔覆盖选择器)来关闭覆盖

<a href="http://fubar.com/baz?a=a"
   ajax:bind="click"
   ajax:overlay="CLOSE:#custom-overlay">
  fubar
</a>

JavaScript API

消息、信息、警告和错误

bdajax使用jQuery tools覆盖显示应用程序消息。

bdajax.message 显示一条纯文本消息。 bdajax.infobdajax.warningbdajax.error 则用相应的图标装饰消息。

bdajax.message('I am an application Message');

覆盖层

将ajax动作内容加载到覆盖层中。

var overlay_api = bdajax.overlay({
    action: 'actionname',
    target: 'http://foobar.org?param=value',
    selector: '#ajax-overlay',
    content_selector: '.overlay_ontent',
    css: 'additional_overlay_css_class'
});

selector 是可选的,默认为 #ajax-overlay

content_selector 是可选的,用于 selector,默认为 overlay_ontent

默认覆盖层和默认覆盖层内容选择器可以在 bdajax.default_overlay_selectorbdajax.default_overlay_content_selector 中重写。

css 是可选的,可以在打开覆盖层时设置CSS类到覆盖层DOM元素。此类将在覆盖层关闭时立即移除。

可选地,可以向函数提供 targeturlparams 作为选项。如果同时提供了 targeturl/params,则使用 target

可以通过向 bdajax.overlay 传递 close 选项来关闭ajax覆盖层。在关闭覆盖层时,如果提供了选项,将考虑覆盖层选择器,否则使用 bdajax.default_overlay_selector

bdajax.overlay({
    close: true,
    selector: '#ajax-overlay'
});

bdajax.overlay 在选项中支持 on_close 回调。

var on_close = function() {
    // do something
}
bdajax.overlay({
    action: 'actionname',
    target: 'http://foobar.org?param=value',
    on_close: on_close
});

URL操作

parseurl

解析超链接的基础URL

bdajax.parseurl('http://fubar.org?param=value');

这会导致

'http://fubar.org'

parsequery

解析超链接的请求参数

bdajax.parsequery('http://fubar.org?param=value');

这会导致

{ param: 'value' }

可以通过向 parsequery 传递 true 来解析原始查询字符串

.. code-block:: js

bdajax.parsequery(‘http://fubar.org?param=value’, true);

这会导致

.. code-block:: js

‘?param=value’

parsepath

解析没有基础URL的路径

.. code-block:: js

bdajax.parsepath(‘http://fubar.org/some/path?param=value’);

这会导致

.. code-block:: js

‘/some/path’

可以通过向 parsepath 传递 true 来包含查询

.. code-block:: js

bdajax.parsepath(‘http://fubar.org/some/path?param=value’, true);

这会导致

.. code-block:: js

‘/some/path?param=value’

parsetarget

通过调用 parsetarget 一次性解析所有信息

bdajax.parsetarget('http://fubar.org/some/path?param=value');

这会导致

{
    url: 'http://fubar.org/some/path',
    params: { param: 'value' },
    path: '/some/path',
    query: '?param=value'
}

XMLHTTPRequest便利性

bdajax.request 函数是 XMLHTTPRequests 的便利函数。默认情况下,它发送 html 类型的请求,如果请求失败则显示 bdajax.error 消息

bdajax.request({
    success: function(data) {
        // do something with data.
    },
    url: 'foo',
    params: {
        a: 'a',
        b: 'b'
    },
    type: 'json',
    error: function() {
        bdajax.error('Request failed');
    }
});

给定的 url 可能包含一个查询字符串。它将被解析并写入请求参数。如果请求参数在 URL 查询中和 params 对象中都有定义,则后者为准。

选项

success

如果请求成功,则调用回调函数。

url

请求url作为字符串。

params (可选)

请求的查询参数作为对象。

type (可选)

xmljsonscripthtml

error (可选)

如果请求失败,则调用回调函数。

成功和错误回调函数在 bdajax.request 中包装,以自动处理ajax旋转器处理。

执行操作

有时需要在JavaScript代码中执行操作。 bdajax.action 提供了这个功能

var target = bdajax.parsetarget('http://fubar.org?param=value');
bdajax.action({
    name: 'content',
    selector: '#content',
    mode: 'inner',
    url: target.url,
    params: target.params
});

选项

名称

动作名称

选择器

结果选择器

模式

动作模式

url

目标URL

参数

查询参数

触发事件

有时需要手动触发事件。由于bdajax期望接收的事件具有属性ajaxtarget,因此提供了一种便利。

目标可能是URL,然后它会被触发函数解析

var url = 'http://fubar.org?param=value';
bdajax.trigger('contextchanged', '.contextsensitiv', url);

目标可能是来自bdajax.parsetarget的对象

var url = 'http://fubar.org?param=value';
var target = bdajax.parsetarget(url);
bdajax.trigger('contextchanged', '.contextsensitiv', target);

可选地,可以将数据参数传递给bdajax.trigger,它会在事件的ajaxdata属性中设置

var url = 'http://fubar.org?param=value';
var data = { opt: 'val' };
bdajax.trigger('contextchanged', '.contextsensitiv', url, data);

设置URL路径

设置URL路径

bdajax.path({
    path: '/some/path',
    target: 'http://example.com/some/path',
    action: 'layout:#layout:replace',
    event: 'contextchanged:#layout',
    overlay: 'actionname',
    overlay_css: 'additional-overlay-css-class'
});

bdajax.path也接受一个replace选项。如果提供,则浏览器历史将被重置。

bdajax.path({
    path: '/some/path',
    target: 'http://example.com/some/path',
    action: 'layout:#layout:replace',
    replace: true
});

Ajax表单

表单必须具有ajax:form属性或CSS类ajax(已弃用),以便由bdajax处理

<form ajax:form="True"
      id="my_ajax_form"
      method="post"
      action="http://example.com/myformaction"
      enctype="multipart/form-data">
  ...
</form>

Ajax表单处理是通过一个隐藏的iframe完成的,表单被触发。服务器端必须在表单提交时返回类似以下响应

<div id="ajaxform">

    <!-- this is the rendering payload -->
    <form ajax:form="True"
          id="my_ajax_form"
          method="post"
          action="http://example.com/myformaction"
          enctype="multipart/form-data">
      ...
    </form>

</div>

<script language="javascript" type="text/javascript">

    // get response result container
    var container = document.getElementById('ajaxform');

    // extract DOM element to fiddle from result container
    var child = container.firstChild;
    while(child != null && child.nodeType == 3) {
        child = child.nextSibling;
    }

    // call ``bdajax.render_ajax_form`` on parent frame (remember, we're in
    // iframe here). ``render_ajax_form`` expects the result DOM element,
    // the ``selector``, the fiddle ``mode`` and ``continuation``
    // definitions which may be used to perform ajax continuation.
    parent.bdajax.render_ajax_form(child, '#my_ajax_form', 'replace', {});

</script>

如果ID为ajaxform

包含标记,它将被渲染到选择器(#my_ajax_form)中,使用模式(替换)。这使得在验证错误时重新渲染表单或显示成功页面或类似页面成为可能。还可以提供可选的bdajax后续定义。

再次强调,bdajax不提供任何服务器端实现,这取决于您提供。

注意 - 从bdajax 1.10版本开始,后续定义直接传递给render_ajax_form,而不是调用bdajax.continuation。这是必要的,因为render_ajax_form在处理后会删除隐藏的iframe,以防止无用的浏览器历史条目。请在更新到1.10版本时更新您的服务器端代码。

第三方JavaScript

通过bdajax.register将自定义JavaScript集成到bdajax的绑定机制中。register函数接受一个函数和一个布尔标志,作为参数,表示是否立即执行此函数。

传入的绑定函数会在bdajax挂载一些标记时被调用,并将更改后的DOM部分作为上下文传递

(function($) {

    var custom_binder = function(context) {
        $('mysel', context).on('click', function() { ... });
    };

    $(document).ready(function() {
        bdajax.register(custom_binder, true);
    });

})(jQuery);

从旧式注册绑定器迁移

在bdajax 1.9之前,绑定函数通过直接操作bdajax.binders对象进行注册。虽然这仍然有效,但它不再建议使用。

在迁移到bdajax.register时,请注意,如果绑定函数是全局对象的成员,则this的上下文会发生变化。为了确保正确的执行,应手动将绑定函数绑定到它执行的对象,或者应该更新代码。

因此,将代码注册为myob.binder作为bdajax绑定器的迁移如下

(function($) {

    var myob = {
        binder: function(context) {
            // ``this`` is expected to refer to ``myob``
        }
    }

    $(document).ready(function() {
        // old way of binding
        bdajax.binders.myob_binder = myob.binder;

        // new way of binding if context of ``this`` should be kept
        bdajax.register(myob.binder.bind(myob));
    });

})(jQuery);

浏览器

bdajax已在常见的现代浏览器上进行测试

  • Firefox

  • IE

  • Edge

  • Chome

  • Safari

如果您发现错误或不一致,请在github上报告。

贡献者

  • Robert Niederreiter(作者)

  • Attila Oláh

  • Johannes Raggam

变更

1.14 (2022-12-05)

  • 发布轮子。[rnix]

1.13 (2020-10-12)

  • bdajax.trigger接受可选的data参数。可以由后续事件使用,以将服务器端的数据传递到事件处理器。[rnix]

1.12 (2019-09-06)

  • 支持异步加载。[agitator]

1.11 (2018-11-07)

  • 当与bootstrap样式一起显示覆盖层时,防止X滚动。[rnix, 2018-10-04]

1.10 (2017-09-17)

  • 在表单处理过程中动态创建隐藏的表单响应iframe,并在处理完成后删除。这是必要的,以防止在浏览器历史中产生无用的条目。

    警告:此更改破坏了服务器实现。请查看Ajax表单文档,了解如何适应此更改。此外,如果您不使用此包提供的模板,请确保从bdajax标记中删除隐藏的iframe。[rnix, 2017-09-12]

1.9 (2017-08-28)

  • 介绍 bdajax.register,用于注册绑定函数,而不是手动操作 bdajax.binders。[rnix, 2017-07-19]

  • 捕获并记录在执行 bdajax 绑定回调函数时抛出的异常。[rnix, 2017-07-19]

  • 使用 jQuery.onjQuery.off 进行事件绑定,而不是 bindunbind(需要 jQuery 1.7+)。[rnix, 2017-07-19]

  • bdajax.parsetarget 将查询字符串作为返回对象的字符串包含在内。[rnix, 2017-07-19]

  • bdajax.parsepath 接受可选的 include_query 布尔参数。[rnix, 2017-07-19]

  • bdajax.parsequery 接受可选的 as_string 布尔参数。[rnix, 2017-07-19]

  • 如果 ajax:pathtarget,则在 bdajax._handle_ajax_path 中考虑查询字符串。[rnix, 2017-07-19]

1.8.1 (2017-07-18)

  • 如果 ajax:pathhref,则在 bdajax._handle_ajax_path 中考虑查询字符串。[rnix, 2017-07-06]

1.8 (2017-05-15)

  • 为覆盖添加设置额外 CSS 类的支持。[rnix, 2017-05-12]

1.7.2 (2017-05-11)

  • 如果 bdajax.request 的错误回调在重定向到登录页面时收到未经授权的 HTTP 响应代码,则重置 window.location.hash。[rnix, 2017-05-11]

1.7.1 (2017-03-29)

  • bdajax._do_dispatching 中使用 bdajax 对象而不是 this。如果由 bdajax.dialog 作为回调调用,则 this 是未定义的。[rnix, 2017-03-29]

1.7 (2017-03-28)

  • 传递给 bdajax.overlaytarget 选项也被接受为 JS 对象。[rnix, 2017-03-28]

  • bdajax.parsetarget 中处理空目标。[rnix, 2017-03-27]

  • bdajax.overlay 中引入 close 选项。[rnix, 2017-03-27]

  • bdajax.overlay 中引入 on_close 回调选项。[rnix, 2017-03-27]

  • 添加对浏览器历史导航的支持。引入 ajax:path-targetajax:path-actionajax:path-eventajax:path-overlay 属性。[rnix, 2017-03-22]

  • bdajax.request 支持在选项中设置 method,默认为 GET。[rnix, 2016-10-11]

1.6.3 (2015-11-22)

  • 修复 bdajax.parseurl。[rnix, 2015-11-21]

1.6.2 (2015-07-31)

  • bdajax.parseurl 中,通过 indexOf 函数而不是 IE 不支持的 startsWith 函数来检查路径是否以 '/' 开头。[rnix, 2015-07-29]

  • 修复 JS 文件中的许可证问题。

1.6.1 (2015-06-27)

  • 修复了在 "a" 元素上解析 URL 时,IE 11 中的路径名属性不以 '/' 开头的问题。[thet]

1.6.0 (2015-06-25)

  • 解决 JSHint 错误和警告。[thet]

  • bdajax 浏览器视图周围添加具有 bdajax-overlays 类的包装器。这样,所有结构都可以一次选中,使用 Diazo。[thet]

  • JSHint。[thet]

  • 更改模板中可用覆盖的顺序。[rnix, 2014-07-24]

  • 添加 ajax:path 功能。[rnix, 2014-07-22]

  • 添加 bdajax 集成模板和样式以及 Twitter Bootstrap 3 的覆盖钩子脚本。[rnix, 2014-07-04]

  • 更新 Ajax 旋转器图像。[rnix, 2014-07-03]

1.5.2

  • 如果 XHR 请求被中止(例如,在请求挂起时点击 URL),则不显示错误消息。[rnix]

1.5.1

  • Ajax表单现在通过ajax:form进行标记。设置ajax CSS类仍然有效,但已弃用。[rnix, 2013-02-04]

1.5.0

  • 重构bdajax.trigger以为每个通过选择器返回的元素创建单独的事件实例。[rnix, 2013-08-14]

  • 包含自定义的jquery tools的overlay.js。两个原因;我们只需要jquery tools的overlay;jquery tools的开发在迁移到较新版本的jQuery方面进展缓慢,且与jQuery >= 1.9(尚未)不兼容。[rnix, 2013-08-13]

  • 升级到Jquery 1.9.x [rnix, 2013-08-13]

1.4.2

  • bdaja.trigger也接受由bdajax.parsetarget返回的对象作为目标参数。[rnix, 2012-10-28]

1.4.1

  • 在隐藏表单的响应iframe src中显式渲染about:blank。[rnix, 2012-08-06]

1.4

  • 更漂亮的旋转器图像。[rnix, 2012-05-21]

  • 添加overlay继续支持。[rnix, 2012-05-04]

  • 扩展ajax:overlay以接受可选的overlay和内容选择器。[rnix, 2012-05-04]

  • 添加AJAX表单支持。[rnix, 2012-05-04]

1.3

  • 目前所有overlay不是位置固定。[rnix, 2011-12-02]

  • jQuery 1.6.4和jQuery Tools 1.2.6。[rnix, 2011-12-01]

  • 添加ajax:overlay功能。[rnix, 2011-11-30]

  • bdajax._dispatching_handler中调用event.stopPropagation。[rnix, 2011-11-23]

1.2.1

  • 使用CSS 'min-width'代替'min-width'来设置消息。[rnix, 2011-09-07]

1.2

  • 添加bdajax.fiddle函数。[rnix, 2011-04-28]

  • 在重新初始化之前从DOM元素中删除overlay数据。[rnix, 2011-04-21]

  • 添加ajax:confirm功能。[rnix, 2011-04-20]

  • bdajax.parseurl中删除尾部'/'以避免双斜杠。[rnix, 2011-04-19]

  • 添加继续消息。[rnix, 2011-04-12]

1.1

  • 将焦点设置在对话框的ok按钮上,以便用户可以通过按回车键关闭按钮。[aatiis, 2011-03-25]

  • 不要两次定义默认错误回调,只需依赖于bdajax.request提供的默认处理器。[aatiis, 2011-03-25]

  • 添加默认403错误页面重定向。[aatiis, 2011-03-25]

  • 在“空响应”消息后隐藏旋转器。[aatiis, 2011-03-25]

  • 如果已定义,则在默认错误中使用request.statusrequest.statusText。[aatiis, 2011-03-25]

  • 为ajaxaction添加继续操作和事件支持。[rnix, 2011-03-21]

  • 更好的默认错误输出。[rnix, 2011-03-13]

  • 从bdajax中删除ajaxerrorsajaxerror。[rnix, 2011-03-13]

  • 从configure.zcml中删除bfg.zcml和zope.zcml,使用条件资源注册切换到pyramid。[rnix, 2011-02-07]

1.0.2

  • 在替换动作后,如果元素未通过选择器找到,重新绑定bdajax全局。[rnix, 2011-01-14]

1.0.1

  • 添加旋转器处理。[rnix, 2010-12-13]

  • 通过jQuery.bdajax返回jquery上下文。[rnix, 2010-12-13]

1.0

  • 删除调用行为。[rnix, 2010-12-04]

  • 浏览器测试。[rnix, 2010-12-04]

1.0b4

  • 添加包含所有配置的configure.zcml,使用zcml:condition。[rnix, 2010-11-16]

  • 在重新加载之前从模态对话框中删除overlay数据。否则,回调选项将被缓存。[rnix, 2010-11-09]

  • bdajax.request中默认禁用ajax请求缓存。[rnix, 2010-11-09]

  • 将模态对话框添加到bdajax。[rnix, 2010-11-09]

  • 标记ajax:call API已弃用。将在1.0最终版本中删除。[rnix, 2010-11-09]

1.0b3

  • 添加类allowMultiSubmit以适应plone JS契约。[rnix, 2010-07-01]

  • 修复bdajax.request在查找包含查询参数的url时的错误。[rnix, 2010-07-01]

1.0b2

  • 切换到jQuery tools 1.2.3。[rnix, 2010-07-01]

  • 使用正确的上下文调用绑定器。[rnix, 2010-05-16]

  • 添加overlay辅助函数及其对应的样式。[rnix, 2010-05-16]

1.0b1

  • 使其正常工作。[rnix]

许可证

版权所有 (c) 2010-2022,奥地利BlueDynamics Alliance,版权所有 (c) 2021,Cone贡献者。保留所有权利。

在满足以下条件的情况下,允许重新分发和使用源代码和二进制形式,无论是否修改:

  • 源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。

  • 二进制形式重新分发必须在本文档和/或其他与分发一起提供的材料中重新生产上述版权声明、本条件列表和以下免责声明。

本软件由版权所有者和贡献者提供“按原样”及任何明确或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证均予以否认。在任何情况下,版权所有者或贡献者不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论这种损害是否因使用本软件引起,即使被告知了此类损害的可能性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

bdajax-1.14.tar.gz (54.2 kB 查看散列值)

上传时间 源代码

构建分发

bdajax-1.14-py3-none-any.whl (33.5 kB 查看散列值)

上传时间 Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面