我正在研究Yii2
。在我的控制台中,我遇到两种错误。
未捕获的TypeError:无法读取未定义的属性'fn' 在bootstrap-show-password.min.js:6 在bootstrap-show-password.min.js:6
错误线,位于var i=e.fn.password;e.fn.password=function()......}(window.jQuery);
的{{3}}
未捕获的ReferenceError:未定义$ st 在common.js:263
错误线,位于if ($st && $stats && blockingRules && setupUser && !window.forceReload)..
的{{3}}
下面是我在main.php
文件中的声明
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?= Html::csrfMetaTags() ?>
<title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.0.3/bootstrap-show-password.min.js"></script>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<?php $this->beginBody() ?>
更新1
main.php
中的某些脚本
<script>
$(document).ready(function () {
$('.listing-img').on('click', function () {
$('#modal-img-tag').attr('src', $(this).attr('src'));
$('#image-view-modal').modal();
});
});
</script>
<script>
var data = [];
<?php foreach(\app\models\Roles::toArrayList() as $k=>$v){?>
data.push({id:<?=$k?>, text: '<?=$v?>'});
<?php } ?>
if($(".select2-selection").length>0) {
$(".select2-selection").select2({
data: data,
allowClear: true,
placeholder: "Select a Role",
multiple: true
});
}
</script>
<script src="https://cdn.rawgit.com/MrRio/jsPDF/master/dist/jspdf.min.js">
</script>
<div id="pdf-editor"></div>
</body>
</html>
<?php $this->endPage() ?>
我都在yii2/yii
中搜索了两者,但找不到合适的解决方案
如何摆脱这些错误?
任何帮助将不胜感激。
答案 0 :(得分:1)
在布局文件中,您将使用bootstrap-show-password.js
标签添加<script>
文件。
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.0.3/bootstrap-show-password.min.js"></script>
以及<head>
部分中的内容,而默认情况下,如果您使用AssetManager
或registerJsFile
,则会将脚本添加到页面底部</body>
标记之前,并且bootstrap-show-password.js
应该在jquery
和bootstrap
js库之后而不是之前加载,请参见bootstrap-show-password
<script src="assets/jquery.min.js"></script>
<script src="assets/bootstrap-v2/js/bootstrap.js"></script>
<script src="bootstrap-show-password.js"></script>
这就是您得到错误的原因
未捕获的TypeError:无法在读取未定义的属性'fn' bootstrap-show-password.min.js:6,位于bootstrap-show-password.min.js:6
您的jquery和bootstrap加载到页面底部而不是页面顶部。
您应该将script标签替换为
$this->registerJsFile('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.1.2/bootstrap-show-password.min.js',[
'depends'=> \yii\bootstrap\BootstrapAsset::class
]);
,以便在引导程序库和jquery库之后加载文件。
关于另一个错误
未捕获的ReferenceError:common.js:263中未定义$ st
它与您的Chrome浏览器中安装的某些扩展程序有关,请查看您提供的链接,该链接会使用您可能会尝试使用其他浏览器(例如FF或IE)尝试使用该名称搜索chrome扩展程序的链接,因为演示网址未加载该特定网址使用chrome时对我来说是脚本,布局中的任何地方都没有包含文件common.js
,也没有包含AssetManager
文件。