【问题标题】:$document->addScript not working$document->addScript 不工作
【发布时间】:2011-05-10 23:51:40
【问题描述】:

我有一个前端组件视图,我需要在标题中包含一个 .js 文件(标题是由 Joomla 生成的,而不是在 default.php 中硬编码)。前端组件文件为mysite.com/components/com_arrcard/views/tmpl/default.php; javascript 文件位于 mysite.com/administrator/components/com_arrcard/js/CalendarPopup.js。

这是我在 default.php 中尝试过的:

$document =& JFactory::getDocument();
$popUrl = JURI::root(true).'/website/documents/ccv.html';
$popImage = JURI::root(true).'/website/documents/cv_card.jpg';
$popPhone = JURI::root(true).'/website/documents/phone.html';

$document->addScript( JURI::root(true).'/administrator/components/com_arrcard/js/CalendarPopup.js' );

$popImage 和 $popPhone 变量设置正确,但没有添加脚本 - 当我查看呈现的页面源时,CalendarPopup.js 不存在。

谁能帮帮我?我在这里做错了什么?我也试过了

$document->addScript('administrator/components/com_arrcard/js/CalendarPopup.js' );

这也不起作用。在管理员 com_arrcard 组件的视图中包含完全相同的文件时,addScript 代码确实有效。 addScript 的工作位置是否有一些限制?

【问题讨论】:

    标签: joomla


    【解决方案1】:

    您的代码看起来确实正确。也许尝试下面的另一种方法,第一行是包含 JS,而另一行是 CSS(以防万一有人在未来寻找 css 包含时偶然发现)。

    JHTML::script( 'javascript.js', 'components' . DS . 'com_component' . DS . 'lib' . DS . 'js' . DS );
    JHTML::stylesheet( 'style.css', 'components' . DS . 'com_component' . DS . 'lib' . DS . 'css' . DS );
    

    确保您使用 DS(目录分隔符),以便 Joomla 可以根据运行站点的操作系统填写正确的 / 或 \。

    所以在你的情况下你需要这行代码:

    JHTML::script( 'CalendarPopup.js', 'administrator' . DS . 'components'. DS .'com_arrcard'. DS .'js');
    

    【讨论】:

    • JHTML::script 确实有效;我在 joomla dev google group 上得到了相同的答案。我很好奇为什么当 addScript 不起作用时它会起作用;每种方法的可用时间是否有某种限制?
    • 我不确定。我以前都成功使用过。您是否尝试过输入硬编码的 url 而不是使用 JURI::root()?
    • 是的,同样的事情也会发生。我以前也使用过这两种方法,所以我不确定为什么其中一种在另一种不适用的情况下工作。
    【解决方案2】:

    您发布的代码应该可以工作。您可以在页面实际呈现和发回之前的任何时间点操作 JDocument,因此无论您是在模板文件中还是在控制器或视图文件中(实际上是应该从更好的 MVC 角度出发)。

    检查以确保您的模板 index.php 文件中包含以下标记:

    这可能在您的管理模板中(可能是默认模板),但不是自定义模板。虽然它应该。

    另一种简单的测试方法是将模板临时更改为 rhuk_milkyway 以查看代码是否在此处正确注入。

    【讨论】:

      猜你喜欢
      • 2011-08-30
      • 2015-06-30
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2021-10-25
      相关资源
      最近更新 更多