Yii2在另一个文件中调用javascript函数

时间:2017-07-06 02:36:13

标签: javascript php yii2

我有一个js文件和一个索引文件,它们位于同一个文件夹中。这是我的表格。我已经注册了脚本。

$this->registerJs($this->render('script.js'), \yii\web\VIEW::POS_READY);

<?php $form = ActiveForm::begin(); ?>
<div class="booth">
    <video id="video" width="400" height="300"></video>
    <a href="#" id="capture" class="button">Take Photo</a>
    <canvas id="canvas" width="400" height="300"></canvas>
</div>

<div class="form-group">
       <?= Html::button('Save',['class'=>'btn btn-primary','onclick'=>'saveimage();']) ?>
</div>

 <?php ActiveForm::end(); ?>

这是js文件中的函数。

function saveimage()
{
    var csrfToken = $('meta[name="csrf-token"]').attr("content");

    console.log(123);

    })*/
}

当我点击我的按钮时显示错误Uncaught Reference Error: saveimage is not defined?无论如何它在那里调用函数?

我也试过了'onclick'=> 'js:saveimage()',但仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

尝试:

$this->registerJs(
    "function saveimage()
     {
        var csrfToken = $('meta[name="csrf-token"]').attr("content");

        console.log(123);

     }",
    \yii\web\VIEW::POS_READY,
    'my-button-handler'
);

或者,如果您想使用单独的js文件,可以使用以下语法:

$this->registerJsFile(
    '@web/js/script.js',
    ['depends' => [\yii\web\JqueryAsset::className()]]
);
  

使用yii \ web \ View对象时,您可以动态注册   前端脚本。有两种专用方法:

     

1)内联脚本的registerJs()

     

2)用于外部脚本的registerJsFile()

有关详细信息,请参阅link