Answers:
JS使文本区域可调整大小,而不是CSS。我认为对所有文本区域禁用此行为的最简单方法是THEMENAME_textarea()
在您的主题中实现并将其删除:
function THEMENAME_textarea($element) {
$element['element']['#resizable'] = false ;
return theme_textarea($element) ;
}
unset($element['#resizable']);
代替$element['#resizable'] = false;
。如果你看一下代码,theme_textarea()
应该肯定的工作
$element
包含一个名为的数组element
,因此可以使用: $element['element']['#resizable'] = false;
在主题中覆盖这一点是最后一刻的更改,哪些模块将没有机会做出反应。
通过模块和#process
回调执行此操作同样容易:
/**
* Implements hook_element_info_alter()
*/
function custom_element_info_alter(&$types) {
$types['textarea']['#process'][] = 'custom_process_textarea';
}
/**
* A custom callback to disable "grippies" on textareas.
*/
function custom_process_textarea($element) {
$element['#resizable'] = FALSE;
return $element;
}
这使诸如Wysiwyg之类的模块有机会注意到textarea不应有抓图,因此可以避免在禁用编辑器时附加该行为。
现在发布了一个名为“ 禁用可调整大小的文本区域”的新模块。
这是一个简单的模块,具有添加功能以覆盖textarea字段的默认#resizable属性。默认情况下,所有文本区域都是可调整大小的。此模块允许您在每个字段上禁用此功能。
设置非常容易。只需编辑所需的字段,您将看到“禁用此textarea的#resizable属性”选项。如果该字段的类型为“带摘要的长文本”,则还可以从其摘要禁用可调整大小。
您可以更改节点或注释的形式。
查看以下示例代码和注释:
$form['body'][LANGUAGE_NONE][0]['value']['#resizable'] = FALSE;
对于mozilla和chrome,我们仍然可以看到该问题。放置CSS hack。
textarea {
resize: none;
}
我最近也在解决此问题,并找到了以下两种解决方案:
我最喜欢的第一个是:在您主题的代码中使用此代码template.php
,所有抓手和textarea.js都将消失:
/**
* Override of theme('textarea').
* Deprecate misc/textarea.js in favor of using the 'resize' CSS3 property.
*/
function THEMENAME_textarea($variables) {
$element = $variables ['element'];
element_set_attributes($element, array('id', 'name', 'cols', 'rows'));
_form_set_class($element, array('form-textarea'));
$wrapper_attributes = array(
'class' => array('form-textarea-wrapper'),
);
$output = '<div' . drupal_attributes($wrapper_attributes) . '>';
$output .= '<textarea' . drupal_attributes($element ['#attributes']) . '>' . check_plain($element ['#value']) . '</textarea>';
$output .= '</div>';
return $output;
}
不要忘记将THEMENAME更改为您的主题名称并刷新所有缓存。
第二种方法是安装模块,禁用可调整大小的文本区域,但是我尝试将安装中的模块数量保持在尽可能低的水平。
theme('textarea')
,否则将导致无限循环;它需要调用theme_textarea()
,或从另一个模块设置的主题函数代替theme_textarea()
。