强制Drupal将Drupal行为附加到新的ajax内容上(仅Drupal.attachBehaviors()不能正确工作)
我在drupal.org上做了很多有关该主题的文章,但不幸的是,背景不正确。 ajaxed内容未附加所需的JS和CSS(论坛) ajaxed内容未附加所需的JS和CSS(问题) 我认为这不是问题,所以我尝试使用另一种方法,也许这可能是解决方案。加载整个PHP页面并使用ajax提取某个div并不正确。所以我想,我可以让drupal仅加载内容并将其与ajax一起注入div。我用hook_preprocess_page和hook_preprocess_node进行了查询,该查询在请求的URL中查找“ ajax = 1”,然后只给出内容而不显示整个页面。现在在理论上,借助于某些tpl.php文件,我可以将drupal的输出限制为仅$ content。这就是问题所在。即使我以原始方式保留tpl.php文件,但从node-ajax.tpl.php中删除“ $ content”时,我的方法仍然有效。“以正确的方式工作”是指drupal不会重新加载整个页面,但当然不是内容。但是我无法向我自己解释,因为$ content变量中的原因,所以我认为,这只是生成内容的html。所以我的问题是,我如何将drupal的输出限制为仅包含内容,或者我是否执行了错误的步骤以使其正常工作。这是我正在使用的模块和js文件:my_ajax.module: <?php function my_ajax_init() { drupal_add_js(drupal_get_path('module', 'my_ajax') . '/my_ajax.js'); } function my_ajax_preprocess_page(&$vars, $hook) { if (isset($_GET['ajax']) && $_GET['ajax'] == 1) { $vars['template_file'] = 'page-ajax'; } } function my_ajax_preprocess_node(&$vars, $hook) { if (isset($_GET['ajax']) && $_GET['ajax'] == 1) { $vars['template_file'] = 'node-ajax'; …