首页 > 解决方案 > 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 上只有路径名的图像。

标签: javascripthtml

解决方案


因此,最佳做法是使用相对文件路径(如果可能)。原因是无论主机名如何,它都可以工作,这意味着只要目录结构不改变,它也可以在开发或部署的任何阶段工作。

来源: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 文件路径访问的任何资源。


推荐阅读