javascript - 使用 chrome 浏览器打开保存的 html 页面时 JavaScript 元素未捕获的 ReferenceError
问题描述
我试图以这样一种方式存储 HTML 页面和相关的 JavaScript,当我使用任何浏览器在本地打开它时,页面会在浏览器中加载而没有任何未捕获的 ReferenceError。
例如,当我通过右键单击并另存为使用 chrome 保存页面时,页面的 HTML 页面和相关资源将被下载并保存到本地目录,并且 HTML 中的所有引用都指向该本地资源目录。但是,如果我在 chrome 中打开 HTML 页面,它会在控制台中显示各种 JavaScript 元素的 Uncaught ReferenceError。
我尝试使用 Django 加载页面,将 HTML 页面保存在模板目录中,并更改页面以从 static/js 目录加载资源。通过浏览器访问 URL 时仍然出现相同的错误。
例如,我手动将 in.yahoo.com 页面保存为 yahoo.html 和 yahoo_resource_dir。
保留 yahoo HTML 是 Django 项目,如下所示,
- 测试门户
- 测试应用
- 模板
- 雅虎.html
- 静止的
- yahoo_resource_dir
- 模板
- 测试应用
视图.py
def malurl(request):
html = TemplateResponse(request, "yahoo.html")
return HttpResponse(html.render())
网址.py
urlpatterns = [path('malicious/', malurl)]
html页面:
{%load static%}
<Other HTML elements>
<script ref={% static 'yahoo_resource_dir/TestJavaScript.js' %}>
预期结果:页面应该打开,所有依赖资源都保存在资源目录中,没有 JavaScript 异常,如 Uncaught ReferenceError。
解决方案
推荐阅读
- node.js - 按 mongoose 参考字段搜索
- java - 随时间变化的建模变量状态
- c# - 可以用某个dll执行某段代码吗?
- javascript - Material UI Autocomplete 组件的 getOptionLabel Prop 没有按预期执行,并且选项从下拉列表中消失)
- laravel - 拉拉维尔 | 三字段组合验证
- c# - 以编程方式查找 Cosmos 容器的 Partition Key Path
- c++ - 具有不同函数类型值的 std::map
- vagrant - 替代在 M1 Apple Silicon 上运行 Vagrant 和 VirtualBox
- collision - Unity - 分数保持在 1
- function - 使用带参数的函数,打印并修改以下消息,以便能够将名称 Python 更改为任何其他编程语言