如何将JavaScript添加到Joomla模块?

3

你好,我在将JavaScript添加到Joomla模块时遇到了问题。我找到了一些解决方案,但它们都不起作用。

$document = &JFactory::getDocument();
$document->addScript("/career.js");    

我在我的模块中有这两行代码,但是脚本没有在呈现的网站中渲染出来。

该文件位于我的网站根目录下(仅用于测试目的)。

谢谢您的帮助。


当您渲染页面时,是否在文档头部看到脚本的调用? - Brent Friar
8个回答

7
尝试这个,它完美地运行。
$document = &JFactory::getDocument();
$document->addScript('modules'.DS.'MOD_YOURMODULENAME'.DS.'javascript.js');

在 Joomla 的新版本中,您可以使用正斜杠 / 代替 Joomla 目录分隔符 DS,例如:$document->addScript('modules/MOD_YOURMODULENAME/javascript.js'); - Farahmand

0
您可以使用以下扩展(适用于1.5和1.6版本)轻松地包含自定义JavaScript或HTML。

http://extensions.joomla.org/extensions/edition/custom-code-in-modules/5435

当您直接使用时,也可以像这样使用完整路径(更改您的 .JS 文件的路径)

<?php
$document = &JFactory::getDocument();
$document->addScript( '/media/system/js/sample.js' );
?>

我尝试将它移动到这个文件夹中,但没有效果。我也尝试从这个文件夹中包含另一个js文件,但是也不行。 我使用的是Joomla 1.5,这能有帮助吗? 所以我会尝试你提到的那个扩展。 - simekadam
所以模块的工作有点奇怪:D 当我在那里编写 JS 代码时,在渲染时会消失,但常规文本可以正常显示。我尝试了清理 HTML 和 JS 的两种设置。 - simekadam
我遇到了同样的问题,今晚我将尝试这个。 - Drewdin

0

查看源代码。

将career.js的路径复制粘贴到浏览器URL中并尝试访问它。

根据需要更改路径。

.   ./   ../

我尝试直接访问文件,它显示正常。但是当使用addScript时,脚本丢失了:( - simekadam
我认为如果URL错误,我会在结果代码中找到一个带有src属性的脚本标签,该属性将设置为我设置的值? - simekadam

0

所以对我来说唯一可行的解决方法就是将这个js添加到我的网站模板中。但这真的是一个糟糕的解决方案,因为我只需要在一个文章/模块中使用它。


我认为我们可以为首页和内部页面使用不同的模板。这是可能的吗? - zod

0

0

哎呀..主要问题是,我正在通过ajax加载包含自定义模块的页面。所有插件似乎都将js代码添加到头部,而我只替换页面正文中的一些元素。 有解决这个问题的方法吗?我知道我可以将所有js逻辑放入一个文件中,但我不确定这是否是好的方式。是否有可能直接将js包含到模块中?这样脚本标记将位于我的文档正文中,并正确包含(我不确定代码是否会被触发?)

谢谢


0

对于那些在较晚时间着陆此页面并寻找Joomla 3.x解决方案的人

您可以包含一个类型为“自定义HTML高级”的模块,它不会过滤任何脚本或样式标签。您可以在任何想要的页面上使用它。

希望这能帮到您 :)


0

请确保您拥有这个

<jdoc:include type="head" />

在模板index.php中的head标签后

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接