【发布时间】:2010-03-03 04:44:14
【问题描述】:
我有一个 drupal 页面,我使用的方式与该网站的所有其他页面非常不同。
我有一个模块可以在这个页面上加载一组专门的 js。我发现我的 JS 不适用于其他模块或 drupal 核心的 js。
如何防止其他模块在该特定页面上执行 drupal_add_js。
谢谢!
【问题讨论】:
标签: javascript drupal templates drupal-modules preprocessor
我有一个 drupal 页面,我使用的方式与该网站的所有其他页面非常不同。
我有一个模块可以在这个页面上加载一组专门的 js。我发现我的 JS 不适用于其他模块或 drupal 核心的 js。
如何防止其他模块在该特定页面上执行 drupal_add_js。
谢谢!
【问题讨论】:
标签: javascript drupal templates drupal-modules preprocessor
除了破解这些模块的代码之外,没有办法阻止其他模块调用drupal_add_js()。
对于“单页异常”,您可以实现 myModule_preprocess_page() 函数并将 $variables['script'] 的内容替换为您自己的脚本包含标记(您可能还需要检查 $variables['closure'])。
或者,您可以为该页面实现特定版本的 page.tpl.php,然后将 $scripts 变量的打印替换为您自己的输出。
请注意,虽然这两种解决方法建议都可能是特殊情况下的有效解决方案,但我强烈建议检查为什么您的 JavaScript '不能很好地与其他模块中的 js 一起工作'。 JavaScript 冲突通常表明一个或多个脚本中存在错误/草率代码,因此您最好花时间查找和修复这些问题,而不是实施难以长期维护的变通办法。
【讨论】: