Drupal8页面更新
许多页面更新通过颜色变化和动画直观地表达。
为了使页面更新以非可视方式明显,Drupal提供了 Drupal.announce 方法。此方法在页面上创建一个ARILIFE元素。附加到该节点的文本由屏幕读取用户代理读取。Drupal.announce通过读取音频UA接受字符串。还可以设置第二个参数:优先级。下面是几个例子:
Drupal.announce('Entering edit mode');
Drupal.announce(
Drupal.t('You look beautiful today.')
);
Drupal.announce(
Drupal.t('Please fill in your user name'),
'assertive'
);
在Drupal8开发中,为了确保字符串能够被翻译,强烈建议使用Drupal.t()函数。
drupal8中,可以接受的两种优先级的值是polite 和assertive;plolite是默认值。
assertive会中断当前会话,polite 不会中断用户会话,如果页面上的很多东西同时发生变化,他们根本不会被阅读。
断言会打断当前的讲话。礼貌声明不会中断用户代理。
tabbingContext.release();
overlay模块使用两个函数来启动制表约束并释放约束:
/**
* Makes elements outside the overlay unreachable via the tab key.
*/
Drupal.overlay.constrainTabbing = function ($tabbables) {
// If a tabset is already active, return without creating a new one.
if (this.tabset && !this.tabset.isReleased()) {
return;
}
// Leave links inside the overlay and toolbars alone.
this.tabset = Drupal.tabbingManager.constrain($tabbables);
var self = this;
$(document).on('drupalOverlayClose.tabbing', function () {
self.tabset.release();
$(document).off('drupalOverlayClose.tabbing');
});
};
/**
*
*/
Drupal.overlay.releaseTabbing = function () {
if (this.tabset) {
this.tabset.release();
delete this.tabset;
}
};