在带有空白 URL 的新 window 中,如何提供从中查找相关资源的路径?

In a new window with a blank URL, how can you provide a path from which to find relative resources?

这个问题开始于针对具有大量功能的 public 网站的 Robot Framework 测试。作为测试生成的数据的一部分,我想截取屏幕截图。整个报告的格式为 HTML,数据源为 JavaScript。所以 RF 将数据放入 .JS 文件,然后 HTML 读取它。

我在处理图像时遇到了问题。他们没有出现在弹出 window 报告中,我不明白为什么。

从 RF 导出的路径是相对的,它们在报告的主页上运行良好,但在弹出窗口中则不然。

问题似乎是“空白”弹出窗口没有 window.location 可从中搜索资源。我什至 运行 进行了一个快速实验,以表明从主 window(左)开始的整个路径无法从弹出窗口(右)访问。

感谢关于绝对副相对路径的评论,我更新了 RF 代码以输出绝对路径。现在我的代码达到了我想要的效果,但我还剩下一个关于空白 windows 和路径的问题。

我可以使图像正常工作,但我有样式表和 javascript 文件,我也想参考这些文件。现在我正在逐行编写所有内容,这似乎有些过分。当然有一种方法可以为新 window 设置路径,它可以用作相关资源的起点。

我看到 imgs 被赋予相对 URLs 来处理(它们应该是)。我不是 100% 肯定基础 URL 是什么 window.open。我不知道它是否是 about:blank,但由于绝对 URL 有效而相对的无效,我认为浏览器不知道指向何处是一个安全的赌注。

所以添加一个元素来明确告诉它指向哪里。这是文档:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

我假设您正在使用 js 向 window 写入元素,因此在这种情况下您需要创建基本元素,将其附加到头部并将 base.href 设置为基本元素url您正在使用。

我认为你可以通过不使用 window.open(在弹出窗口的糟糕日子里得到了非常糟糕的说唱)并使用隐藏的模态 div 来为自己省去一些麻烦您可以将 html 加载(或写入),然后取消隐藏。但是,您可能有完全正当的理由使用弹出窗口。