【发布时间】:2020-01-14 22:08:46
【问题描述】:
我正在构建一个简单的浏览器,并且我想使用 HTML/JS/CSS 编写大部分代码。由于框架破坏,我无法使用 iframe 来显示页面。我有哪些选择?
浏览器并不意味着生产质量,而是作为我论文的概念验证,类似于this interactive mockup。它需要支持的主要功能是:
- 在不破坏帧的情况下加载任何页面(甚至 google.com),
- 检测链接何时被点击并在新框架中打开它,原始框架保持不变。
我打算使用 Web 技术编写此内容,但如果需要将其包含在少量其他内容中也没关系,例如,将其转换为 Android 应用程序。但是,如果可能的话,最好将应用程序加载为网页。最后,最好能够在 Android 设备上运行该应用程序,但如果它只在桌面上运行也可以。
在研究这个问题时,我遇到了几个选项:
-
<iframe>。 Google.com 根本不会在 iframe 中加载。我尝试使用sandbox属性,但它仍然没有加载。 有没有办法解决这个问题(对于任何页面)? -
Mozilla 的 Browser API。此 API 应该允许您在构建 FirefoxOS 应用程序时在 iframe 中使用
mozbrowser属性。我怀疑不再有任何方法可以访问它。我无法加载sample browser app,而且似乎mozbrowser在WebExtensions 中是not supported。 我错过了什么吗?有没有办法让它工作? -
<webview>在 Chrome 应用中。 这是迄今为止唯一有效的选项。 我能够在 Chrome 中下载并安装 sample browser app。一个缺点是它似乎仅限于 Chrome(我更喜欢跨平台或 Firefox,其他一切都相同)。 这个选项有什么问题吗?有什么方法可以让它在没有 Chrome 的情况下运行? -
<webview>的电子应用。虽然这里的设置比前一个选项更复杂,但代码似乎非常相似(甚至还有一个类似的sample browser app)。 与以前的选项相比,此选项有什么优点/缺点吗?
那么,有没有办法使选项 1 或 2 起作用?或许还有其他选择?
【问题讨论】:
标签: html browser web-applications webview framebusting