检测 MATLAB 帮助浏览器

Sam*_*rts 5 matlab

我想为大型 MATLAB 应用程序创建一些 HTML 文档,主要在 MATLAB 帮助浏览器中查看,从 11b 开始的任何版本的 MATLAB 中。这将有一些自定义 CSS(但没有什么非常复杂的)。

但是,我也希望可以在其他浏览器中查看相同的文档。我关心 Chrome 和 IE9 和 10,但欢迎支持其他浏览器。我想要文档

  1. 在包括 MATLAB 帮助浏览器在内的所有浏览器中看起来基本相同,但是
  2. 在 MATLAB 帮助浏览器中matlab:显示时,在某些方面看起来有所不同 - 特别是,我希望链接的显示和行为有所不同,因为它们在 MATLAB 帮助浏览器之外不受支持。

问题 1:即使使用 1,我也遇到了困难,因为尽管我的 CSS 很简单,但 MATLAB 帮助浏览器似乎无法预测它支持哪些 CSS 部分,而且似乎在 MATLAB 版本之间差异很大。我猜它根本没有记录。有没有人有任何关于在 MATLAB 帮助浏览器中使用 CSS 的经验/技巧?

问题 2:我希望能够以某种方式自动检测matlab:查看浏览器是否支持该协议,但从浏览其他 StackOverflow 答案来看,这似乎是不可能的。鉴于我需要支持 Chrome,甚至不可能尝试跟踪matlab:链接并检测它是否失败,因为 Chrome 显然是默默地失败了。嘘。所以我接下来的想法是使用JavaScript来检测浏览器的UserAgent。MATLAB 11b 将自己报告为 Mozilla4.0 并带有ICEbrowser,而 13a 将 Mozilla4.0 与Trident6. 我不完全确定这些是什么 - 我猜它们是第三方基于 Java 的浏览器组件,其行为类似于 Mozilla,而 MathWorks 已在 11b 和 13a 之间更改了组件。

如果我检测到 UserAgent 并假设任何包含字符串ICEBrowser或 的内容Trident,这是否足以区分大多数用途的 MATLAB 帮助浏览器?显然,我必须及时了解 13a 后版本的 UserAgent 字符串。

感谢您的建议!

Flo*_*ker 3

MATLAB帮助浏览器的功能差异很大,不仅在不同的MATLAB版本之间,而且在不同的操作系统之间,甚至在不同的体系结构之间(最近的64位版本通常有一个特别糟糕的浏览器)。

我们使用用户代理来提供特定于 MATLAB 的网页。以下是其中一些的列表:

R2010b/R2011b, 32bit, WinXP:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20060705

R2010b/R2011b, 32bit, Win7:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.8) Gecko/20060705

R2010b, 64bit, Win7:
Mozilla/5.0 (Java 1.6.0_17; Windows 7 6.1 amd64; de_DE) ICEbrowser/v6_0_2

R2011b, 64bit, Win7:
Mozilla/5.0 (Java 1.6.0_17; Windows 7 6.1 amd64; de_DE) ICEbrowser/v6_0_2

R2012a, 32bit, Win7:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko

R2012a, 32bit, WinXP:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko

R2012a, 64bit, Win7:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2;     .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0)

R2012b, 32bit, Win7:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko

R2012b, 64bit, Win7:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2;     .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0)

R2010b, 32bit, Linux:
Mozilla/5.0 (Java 1.6.0_17; Linux 2.6.32-33-generic i386; en_US) ICEbrowser/v6_0_2
Run Code Online (Sandbox Code Playgroud)

请注意,您不能简单地对这些进行字符串比较,因为字符串的某些部分会根据客户端计算机(例如语言代码)而变化。

另请注意,除了渲染 HTML 和 CSS 之外,其他功能也有很大差异。特别是,支持 JavaScript 和 HTTP 身份验证。