首页 > 解决方案 > 请求图像时不首先考虑 Iframe 中的基本元素

问题描述

我有一个 lib(epub.js),它为 epub 文件中的每个部分创建一个 iframe。这些 iframe 有一个基本元素,它应该更改发出请求的基本位置。

window.onload = function () {
  var iframe = document.createElement("iframe");
  iframe.onload = function(){
    console.log("IT WORKED!!");
  };
  iframe.srcdoc="<html lang='en'><head><meta charset='UTF-8'><title>Title</title><base href='newBase/'></head><body><img src='img.gif' /></body></html>";
  document.body.appendChild(iframe);
};

我还构建了一个 Git 存储库:https ://github.com/paschty/iframe_base_test

问题是浏览器忽略了基本元素并请求了一个不存在的图像。请求失败后,浏览器尝试使用来自基本元素的正确 URL,请求成功。

服务器说:

[Wed Aug 07 2019 10:50:15 GMT+0200 (CEST)] "GET /sub/img.gif" Error (404): "Not found"
[Wed Aug 07 2019 10:50:15 GMT+0200 (CEST)] "GET /sub/newBase/img.gif" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"

这发生在 Firefox 和 Chrome 中。

我希望浏览器不会尝试第一个请求!

标签: javascripthtmliframe

解决方案


推荐阅读