2

我正在写这样的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(); ?>

<script>现在它被突出显示,但 netbeans对 Zend 的未关闭标签和其他一些问题不满意......然后在谷歌搜索后发现了这个:

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

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

4

2 回答 2

2

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

它将允许更好的分离、更好的缓存、更好的聚合、更好的突出显示等。

以下是一些可能对您有所帮助的链接:

于 2012-04-25T07:40:29.513 回答
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"

用法:

<?php $this->headScript()->captureStart();?>
    <script>
      alert(1);
    </script>  
<?php $this->headScript()->captureEnd(); ?>
于 2012-04-26T12:06:44.137 回答