先上程式碼:
這是視圖site/reg.php裡
$cs = Yii::app()->getClientScript(); $cs->registerScriptFile('/js/verify-code.js',CClientScript::POS_END);
這是layout/main.php
$commonValue = json_encode([ 'SmsVerifycodeUrl' => Yii::app()->createAbsoluteUrl('site/SendSmsCode'), 'WaitSecond' => WapMember::DEFAULT_INTERVAL, ]); Yii::app()->clientScript->registerScript("var commonValue = $commonValue",CClientScript::POS_END);
這是chrom瀏覽器報的錯
verify-code.js:1 Uncaught ReferenceError: CommonValue is not defined回复內容:一個參數。結果是這樣子滴:
var initSecond = (typeof CommonValue.WaitSecond) == "undefined" ? 180 : CommonValue.WaitSecond, waitSecond =initSecond, SmsVerifyCode = function(btn, form) { this.getBtn = btn; this.form = form;}, SCF;
或確定$commonValue 在main.php 中放到render('reg.php') 之前, 兩次registerScript 是有先後順序的
函數
或物件
, 而不是在這個檔案中引用
全域變數? 之前維護過這樣的程式碼,噁心的一比 以上就是yii在視圖裡創建變數(保護php的程式碼),在js檔案裡調用之前創建的變數的程式碼實例的內容,更多相關內容請關注PHP中文網(www.php.cn)!