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(); ?>

現在は強調表示されていますが、netbeans は閉じられていない<script>タグや 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 に答える