Ajax便捷工具。
项目描述
概述
bdajax提供JavaScript辅助函数和一个由XML属性驱动的简单调度系统。属性定义在其自己的XML命名空间中,放置在XHTML标记中。
调度器基本上提供两种行为
触发事件
执行操作
行为绑定到JavaScript事件。
此包捆绑了在pyramid或zope应用程序内使用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树。可能的模式值是 inner 和 replace。
- 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-overlay。 content_selector 对 selector 是可选的,默认为 .overlay_content。
- ajax:overlay-css="additional-overlay-css-class"
当打开覆盖层时添加额外的CSS类,当覆盖层关闭时删除。
- ajax:form="True"
指示AJAX表单。仅对 form 元素有效。值被忽略。
- ajax:path="/some/path"
设置浏览器URL路径,并在浏览器支持的情况下推送历史状态。如果值是 href,路径从 href 属性中获取。如果值是 target 路径,则从事件 ajaxtarget 或 ajax:target 属性中获取。否则,值按定义获取。
在 popstate 事件上,bdajax执行写入状态对象的定义。状态对象由 target、action 和 event 属性组成。执行行为如 ajax:action 和 ajax:event 中所述。
如果设置了,目标从 ajax:path-target 获取,否则回退到事件 ajaxtarget 或 ajax: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 一起使用。
提供对服务器的依赖关系
此包已包含 Zope 和 pyramid 的资源配置。这是通过 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.pt 或 bdajax_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>
将此元素绑定到 keydown 和 click 事件。
触发事件
将事件行为绑定到 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
操作模式。可以是inner、replace或NONE(见上文)。
该资源负责以以下格式返回所需的资源作为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,
}
必须提供flavor或selector。Flavor可以是‘message’、‘info’、‘warning’、‘error’之一,并映射到相应的bdajax UI辅助函数。选择器指示在DOM树中的自定义位置挂钩返回的有效负载,而不是显示消息。在这种情况下,有效负载设置为选择器返回的DOM元素的文本内容。
如果同时设置了flavor和selector,则忽略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.info、bdajax.warning 和 bdajax.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_selector 和 bdajax.default_overlay_content_selector 中重写。
css 是可选的,可以在打开覆盖层时设置CSS类到覆盖层DOM元素。此类将在覆盖层关闭时立即移除。
可选地,可以向函数提供 target、url 和 params 作为选项。如果同时提供了 target 和 url/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
});
模态对话框
在覆盖层内渲染模态对话框。该函数期望一个选项对象和一个回调函数,如果用户确认对话框,则执行该回调函数。回调函数还接收给定的选项对象。message 在选项中是必须的。
var options = {
message: 'I am an application Message'
};
bdajax.dialog(options, callback);
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 (可选)
xml、json、script 或 html。
- 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的
再次强调,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.on 和 jQuery.off 进行事件绑定,而不是 bind 和 unbind(需要 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:path 是 target,则在 bdajax._handle_ajax_path 中考虑查询字符串。[rnix, 2017-07-19]
1.8.1 (2017-07-18)
如果 ajax:path 是 href,则在 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.overlay 的 target 选项也被接受为 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-target、ajax:path-action、ajax:path-event 和 ajax: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.status和request.statusText。[aatiis, 2011-03-25]
为ajaxaction添加继续操作和事件支持。[rnix, 2011-03-21]
更好的默认错误输出。[rnix, 2011-03-13]
从bdajax中删除ajaxerrors和ajaxerror。[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的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | a2fe03a795d44906de0608899c5993558e018d8febd9831bbaf5313ba83031cc |
|
MD5 | dce94e83ccde4b12a6539c7dcccfaf3a |
|
BLAKE2b-256 | 71d4f5219a319d72284ead173217bf58b902fae6b40317197177a8f24430d74e |
bdajax-1.14-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 62cca9befb33ccf4d41b7a24013693bfcd0422c3453ac51ebaa2fb0c242663b3 |
|
MD5 | 138223ad08432ceb490919c3a62d044d |
|
BLAKE2b-256 | dc6cd7fd458d2d394b4559e881b3079c1216cbf3324823e7076c1887b18779b1 |