javascript - Javascript 生成 html 元素以从特定主机名加载资源
问题描述
我从一个字符串创建一个 HTML 元素来解析它的东西
html = document.createElement('html');
html.innerHTML = 'some html string loaded from a different host';
但我看到使用没有主机名的绝对路径加载的资源,尝试从当前窗口位置加载。
有没有办法设置一个特定位置来加载资源,而不必替换所有绝对或相对 src 路径?
例如,如果我在 html 字符串中有一个图像
<img src="/abspathto/img.jpg">
当我创建 html 元素并设置其 innerHTML 时,浏览器会尝试从当前主机名/abspathto/img.jpg 加载图像
我希望能够设置浏览器可以从哪个主机名加载在从 javascript 生成的 html 元素上的 src 上只有路径名的图像。
解决方案
因此,最佳做法是使用相对文件路径(如果可能)。原因是无论主机名如何,它都可以工作,这意味着只要目录结构不改变,它也可以在开发或部署的任何阶段工作。
来源:https ://www.w3schools.com/html/html_filepaths.asp
您可以通过使用双点来控制 HTML 从哪个级别开始(即“../images/path/to/img”,这会上升 1 个目录)。
您可以使用以下网站:“ https://www.stackoverflowexample.com/images/path/to/img.jpg ”
如果正在访问它们的用户有权这样做,您可以使用 UNC 路径或 IP 地址来使用另一台计算机的资源。堆栈溢出答案: https ://stackoverflow.com/a/29257902/8570546
这应该允许您导航到您可以使用 HTML 文件路径访问的任何资源。
推荐阅读
- scikit-learn - SkikitLearn 学习曲线强烈依赖于 MLPClassifier 的批量大小???或者:如何诊断 NN 的偏差/方差?
- spring - 如何通过@Cacheable 注解记录缓存命中?
- c - 使用 src 代码使用库而不安装它
- jakarta-ee - NullPointerException 从 EntityManagerFactory 创建 EntityManager
- ios - 无法使用 Xcode 10.2 构建
- reactjs - 内容更新字段
- android - 通过命令行启动我的虚拟 Android 设备
- java - 带有新行和连接的 JEditorPane
- php - JWT decode() 必须是数组错误类型
- ios - 致命错误:从 tableview rxswift 中删除单元格时索引超出范围