javascript - JS 源在 Chrome/Firefox 调试器中不可见,但在页面中正确加载
问题描述
我有一个网页,它使用模板进行导航并根据用户交互填充/显示它们。
它工作得很好,但是模板包含一些附带的 JS。当页面刚刚加载时,此 JS 代码已正确加载(在下面的示例中,它提供了一个提示“Hi”)。但是,我在调试器控制台中看不到代码,无论是在 Chrome 还是 Firefox 中。
我在下面提供了一个最小示例,在控制台 > 源中,在 localhost 下,只有我的 HTML 页面和资产/js 子文件夹中的 jquery.min.js。
这是我的 HTML:
<script src="assets/js/jquery.min.js"></script>
<template id="my_screen">
Hello
<script type="application/javascript" src="assets/js/testouille.js"></script>
</template>
<section class="container">
<div class="my_screen hide"></div>
</section>
<script type="application/javascript">
function useTemplate(elem) {
var myTemplate = $('#' + elem),
normalContent = $('.' + elem),
clonedTemplate = myTemplate.html();
normalContent.empty();
normalContent.append(clonedTemplate);
}
$(document).ready(function() {
useTemplate('my_screen');
}
)
</script>
这是我的 Javascript :
alert("Hi");
任何的想法?
解决方案
由于testouille.js
位于 a 中<template>
,因此在加载页面时浏览器不会自动加载它。
当您克隆模板并将其附加到常规 DIV 时,jQuery 模拟使用$.getScript()
. 在 Chrome 调试器中,以这种方式加载的代码将显示在 Sources 中的VM:####
文件名(其中####
是任意数字)中,而不是其实际文件名。
你可以让调试器给它一个文件名,方法是把下面的注释放在testouille.js
:
//# sourceURL=testouille.js
推荐阅读
- tags - 如何使用名称值标签运行测试?
- pandas - 使用 DataFrame.assign 创建多个新的 DataFrame 列并应用
- python-3.x - 线性规划:在 PYTHON 中使用 DocPlex 生成的所有解决方案的列表(使用 cplex 解决方案池失败)?
- c# - C#和Arduino之间通过蓝牙通信,接收到奇怪的数据
- docker - 高山图像中的 Crontab
- mysql - 如何在 SQL 脚本中声明变量?
- android - Kotlin android 从广播接收器中检索应用程序
- postgresql - 具有高共享读取的 postgreSQL 慢查询
- jhipster - jhipster-registry:spring cloud config conf with ssh throws 不是有效的私钥
- asp.net - .NET 5.0 React SPA 在 Debug 中工作,但在发行版中不工作