2012-04-25 70 views
2

我编写JavaScript这样的:如何用Zend Framework和netbeans编写JavaScript?

<?php $this->headScript()->captureStart();?> 
$(function(){ 
    // some javascript magic 
}); 
<?php $this->headScript()->captureEnd(); ?> 

但问题是,它没有突出显示,并且没有自动完成......我试图写这样的:

<?php $this->headScript()->captureStart();?> 
//<script> 
$(function(){ 
    // some javascript magic 
}); 
<?php $this->headScript()->captureEnd(); ?> 

现在它突出但NetBeans是不满意不收<script>标签,并与Zend其他一些问题...然后经过一些谷歌上搜索发现这一点:

<?php if(false) {?><script><?php } ?> 
$(function(){ 
    // some javascript magic 
}); 
<?php if(false) { ?></script><?php } ?> 

工作正常,但也许有更好的解决方案呢?

+0

我很抱歉地说,你无法突出其创建一个新的netbeans插件,我确实也需要它 – tawfekov 2012-04-25 09:24:20

回答

1

您可以扩展用HeadScript,这是最简单的解决方案:

class My_View_Helper_HeadScript extends Zend_View_Helper_HeadScript 
{ 
    public function captureEnd() 
    { 
     $content = ob_get_contents(); 
     ob_clean(); 
     echo strip_tags($content, 'script'); 

     parent::captureEnd(); 
    } 
} 

指定的助手路径:

resources.view.helperPath.My_View_Helper = "My/View/Helper" 

用法:

+0

是的,这应该工作,但不知道巫婆是更好..似乎对我来说,哈克。但多谢一个例子。 – Vytautas 2012-04-26 12:15:19

+0

好吧,可能在这种情况下最好的是什么更适合你,对我来说扩展比使用if(false){..}更明显,但这是有争议的问题。 – 2012-04-28 08:15:51

+0

我没有说过它更好。只是希望有更好的解决方案。我会接受你的回答,因为没有找到更好的方法来处理这个问题。 – Vytautas 2012-04-30 09:04:44

2

在外部JS文件中写入您的js。

这将允许更好的分离,更好的缓存,更好的聚集,更好地突出显示等

这里有一些链接,可以帮助您:

+2

是的,但有时我需要这样写,当我需要自定义JavaScript或只是在一些特定c动作,或动态生成JavaScript ..也许netbeans有一些插件或东西.. – Vytautas 2012-04-25 07:48:39

+1

对于你的任何情况,我没有看到任何理由不使用外部JavaScript文件。 – 2012-04-25 07:51:16

+0

好吧,如果我只是需要像'$('。gallery')。lightbox({一些特定的选项})''为什么我会想创建js文件?它可能比这更复杂..我需要它只是在一个页面 – Vytautas 2012-04-25 07:56:39