我正在尝试在我正在研究的Joomla网站上实现mediaElement.js解决方案,但我遇到了一些问题。以下错误在我的梦中困扰着我:P:
Uncaught TypeError: Object [object Object] has no method 'mediaelementplayer'
我会假设/mediaelement-and-player.min.js但是控制台除了已经提到的错误外没有显示任何错误。
我已将以下内容添加到模板头:
$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/mediaelement-and-player.min.js');
$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/jquery.js');
这会在页面加载时产生正确的链接,所以我猜这不会是问题。
在我的文章正文中,我添加了以下代码:
<video id="youtube1" width="640" height="360">
<source src="http://www.youtube.com/watch?v=nOEw9iiopwI" type="video/youtube" >
</video>
<script>
jQuery(document).ready(function($) {
$('#youtube1').mediaelementplayer();
});
</script>
尽管此代码来自提供的示例,但它会导致前面提到的错误。
对此的任何想法都将不胜感激!
答案 0 :(得分:1)
我不确定文件是否被正确包含,因为我看不到网站,所以请尝试将 jquery.js 和 mediaelement-and-player.min包括在内。 JS 强>
$document = JFactory::getDocument();
//check to see if jquery is already being loaded
if(!JFactory::getApplication()->get('jquery')){
JFactory::getApplication()->set('jquery',true);
$document->addScript(JURI::root() . "templates/template_name/mediaElement/build/jquery.js");
}
$document->addScript(JURI::root() . "templates/template_name/mediaElement/build/mediaelement-and-player.min.js");
不要忘记在上面的代码中更改该路径中的 template_name 。
答案 1 :(得分:0)
感谢大家的投入。
我找到了问题和解决方案:D。
从head.php中删除此行
$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/jquery.js');
解决了我的问题。
我想这是因为jQuery已经被我正在使用的模板加载了。
我希望这将使其他人在未来更加安全。
快乐的编码!