【问题标题】:Web browser interface using HTML/CSS/JS?使用 HTML/CSS/JS 的 Web 浏览器界面?
【发布时间】:2020-01-14 22:08:46
【问题描述】:

我正在构建一个简单的浏览器,并且我想使用 HTML/JS/CSS 编写大部分代码。由于框架破坏,我无法使用 iframe 来显示页面。我有哪些选择?

浏览器并不意味着生产质量,而是作为我论文的概念验证,类似于this interactive mockup。它需要支持的主要功能是:

  • 在不破坏帧的情况下加载任何页面(甚至 google.com),
  • 检测链接何时被点击并在新框架中打开它,原始框架保持不变。

我打算使用 Web 技术编写此内容,但如果需要将其包含在少量其他内容中也没关系,例如,将其转换为 Android 应用程序。但是,如果可能的话,最好将应用程序加载为网页。最后,最好能够在 Android 设备上运行该应用程序,但如果它只在桌面上运行也可以。

在研究这个问题时,我遇到了几个选项:

  1. <iframe>。 Google.com 根本不会在 iframe 中加载。我尝试使用 sandbox 属性,但它仍然没有加载。 有没有办法解决这个问题(对于任何页面)?
  2. Mozilla 的 Browser API。此 API 应该允许您在构建 FirefoxOS 应用程序时在 iframe 中使用 mozbrowser 属性。我怀疑不再有任何方法可以访问它。我无法加载sample browser app,而且似乎mozbrowser 在WebExtensions 中是not supported我错过了什么吗?有没有办法让它工作?
  3. <webview> 在 Chrome 应用中这是迄今为止唯一有效的选项。 我能够在 Chrome 中下载并安装 sample browser app。一个缺点是它似乎仅限于 Chrome(我更喜欢跨平台或 Firefox,其他一切都相同)。 这个选项有什么问题吗?有什么方法可以让它在没有 Chrome 的情况下运行?
  4. <webview> 的电子应用。虽然这里的设置比前一个选项更复杂,但代码似乎非常相似(甚至还有一个类似的sample browser app)。 与以前的选项相比,此选项有什么优点/缺点吗?

那么,有没有办法使选项 1 或 2 起作用?或许还有其他选择?

【问题讨论】:

    标签: html browser web-applications webview framebusting


    【解决方案1】:

    HTML/CSS 是一种由浏览器翻译成页面的“语言”。您不能在 HTML 中编写浏览器代码。最简单的解决方案是用 C# 编写代码。 我不确定这是否是一个好的解决方案,但您可以尝试 Electron (nodeJS)。您只需要使用 JS/CSS/HTML。

    【讨论】:

    • 您是否有任何代码示例显示此工作(在以 HTML 编写的窗口中嵌入任何站点)?任何可以开始的链接?
    • 我将您的 Electron 建议添加到我的问题中的选项中。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2011-05-14
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多