我正在开发 Yii2
。在我的控制台中,我收到两种类型的错误。
-
Uncaught TypeError: Cannot read property 'fn' of undefined at bootstrap-show-password.min.js:6 at bootstrap-show-password.min.js:6
错误行 bootstrap-show-password在 var i=e.fn.password;e.fn.password=function()......}(window.jQuery);
-
Uncaught ReferenceError: $st is not defined at common.js:263
错误行 common在 if ($st && $stats &&blockingRules && setupUser && !window.forceReload)..
下面是我在 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
搜索了这些内容,但找不到任何合适的解决方案
如何消除这些错误?
任何帮助将不胜感激。
最佳答案
在您的布局文件中,您将包含 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>
这就是您收到错误的原因
Uncaught TypeError: Cannot read property 'fn' of undefined at bootstrap-show-password.min.js:6 at bootstrap-show-password.min.js:6
您的 jquery 和 bootstrap 正在加载到页面底部而不是头部。
您应该将脚本标记替换为
$this->registerJsFile('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.1.2/bootstrap-show-password.min.js',[
'depends'=> \yii\bootstrap\BootstrapAsset::class
]);
以便在 Bootstrap 和 jquery 库之后加载该文件。
关于其他错误
Uncaught ReferenceError: $st is not defined at common.js:263
它与您的 Chrome 浏览器中安装的某些扩展程序有关,查看您提供的链接时,它会搜索具有该名称的 Chrome 扩展程序,您可以尝试使用任何其他浏览器(如 FF 或 IE),因为演示网址不会加载该特定的使用 chrome 时为我编写的脚本,文件 common.js
都没有包含在布局或 AssetManager
中的任何位置文件。
关于javascript - Yii2-在控制台中获取类型和引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52050318/