虚拟机JavaScript处理

撰稿最大Milbers上

为什么我们有自己的JavaScript处理在VirtueMart

VirtueMart 3个支持Ajax调用重装产品详细的。这意味着,我们必须触发现有的JS和我们有可能增加新的JS,必须也引发一样,如果页面只是准备好。在Joomla方法添加JavaScript是在这种情况下不充分。这些脚本添加到Ajax调用的头并丢弃。我们必须把我们的JavaScript分成两组。一组是页面需要加载JavaScript和第二组是在页面加载后做的东西(如寻找点击事件或某事)的JavaScript。

它正在做什么?

到Joomla js的类似添加到queque。但是名字必须给予(或产生),因此它可以通过一个templater只要它不呈现来操纵。具有相同的名称,再次调用功能,只需替换现有的脚本。这可以防止长一倍相同的名称用于自动加载JS。它给还templaters一个简单的方法,通过他们自己的版本覆盖核心JS。该JS作家是(仅在vmViews)功能显示后调用。该JS作家添加文件,然后在的Joomla风格的标题和内联JS到组件容器的尾部。本项设置为写。所以,你也可以经常只要你想叫作家。这是一个模块或插件非常方便。 The code is additionally wrapped by //

如何使用

作为templater或模块开发的使用率是相当简单,只需使用功能vmJsApi :: addJScript。

公共静态功能addJScript($名称,$脚本=假,$延迟= TRUE,$异步= FALSE)
第一个参数是标记脚本的名称。第二个参数只是你的Java脚本的字符串。最后一个参数都有默认已经为内联JS正确的价值观。对于像jQuery库,通常需要延迟=假。

如果你只是加载文件,使用斜线/,使用绝对URL或域名只是//而不使用https是很重要的。它也可作为直接第一个参数相对URL到您的文件使用一个有效的快捷方式。本地文件搜索在js /模板/ yourtemplate / JS,那么在一般Virtuemart资产路径(通常是组件/ com_virtuemart /资产/ JS)。

例子:

//简单通话vmJsApi :: addJScript( 'facebox');//添加一个字符串作为脚本到您的文档vmJsApi :: addJScript结束( 'vm.cookie', '无功virtuemartcookie = “' $ cookieName。”;“);//将一个文件头,相对于你的Joomla URL vmJsApi :: addJScript( '/管理员/组件/ com_virtuemart /资产/ JS / jquery.coookie.js');//将一个文件头,相对于你的js目录vmJsApi :: addJScript( '的fancybox / jquery.fancybox-1.3.4.pack');从谷歌//加载JS库vmJsApi :: addJScript( 'jquery.min','// ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',false);

如果你正在写一个模块,写JS渲染我们的writeJs,例如插件后:

要求(JModuleHelper :: getLayoutPath( 'mod_virtuemart_cart'));回波vmJsApi :: writeJS();

如果你想看到的已经加载JS(例如,由于要改变它),使用

$ JS = vmJsApi :: getJScripts();