2012-12-29 61 views
0

我正试图在Joomla网站上实施mediaElement.js解决方案,但我遇到了一些问题。下面的错误是我脑海中萦绕在我的梦中:P:实施mediaElement.js导致错误

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> 

Eventhough这个代码是从实例提供它导致之前提到的错误。

任何想法,将不胜感激!

+0

是否将mediaelement.js文件加载到最终的HTML中? – feeela

+0

不,只是mediaelement-and-player.min.js – SKuijers

+0

但在旁边。我对正在加载的文件感到乐观,正如我在评论中对Lodder – SKuijers

回答

1

林不知道是否被正确地包含在文件,因为我看不到的网站,所以试试这个包括的jquery.js的MediaElement和-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

+0

所说的那样。谢谢你的例子,但我绝对肯定文件被加载,因为我通过检查HEAD并点击提供的链接,成功将我带到这两个.JS文件。接下来,控制台不会给出任何警告或错误,指出文件加载失败。 – SKuijers

0

感谢球员们的意见。

我发现了问题和解决方案:D。

从解决我的问题的head.php

$this->API->addJS($this->API->URLtemplate() . '/mediaElement/build/jquery.js'); 

删除此行。

我想这是因为jQuery已经被我使用的模板加载。

我希望这会安全别人在未来的头痛。

快乐编码!

+1

这很奇怪,因为我在回答中提供的代码是检查jquery是否已被加载。如果不是,则加载它。如果是,它不加载它。 – Lodder

+0

嘿!如果我按照你做的方式执行检查,这也是可以解决问题的。谢啦! – SKuijers