我想为大型MATLAB应用程序创建一些HTML文档,主要在MATLAB帮助浏览器中,在11b以上的任何版本的MATLAB中查看。这将有一些自定义CSS(但没有什么非常复杂的。)
但是,我也希望在其他浏览器中可以查看相同的文档。我关心Chrome和IE9和10,但欢迎支持其他浏览器。我想要文档
matlab:
链接显示和行为不同,因为在MATLAB帮助浏览器之外不支持它们。问题1:即使使用1,我也遇到了困难,因为尽管我的CSS很简单,但MATLAB帮助浏览器似乎无法预测它支持的CSS部分,并且似乎有所不同跨MATLAB版本很多。我猜它根本没有记录。有没有人有任何关于在MATLAB帮助浏览器中使用CSS的经验/提示?
问题2:我希望能够以某种方式自动检测查看浏览器是否支持matlab:
协议,但是通过浏览其他StackOverflow答案,这似乎是不可能。鉴于我需要支持Chrome,因此甚至无法尝试关注matlab:
链接并检测其是否失败,因为显然Chrome会无声地失败。嘘。所以我的下一个想法是使用JavaScript来检测浏览器的UserAgent。 MATLAB 11b将自己报告为带有ICEbrowser
的Mozilla4.0,而13a给出带有Trident6
的Mozilla4.0。我不完全确定它们是什么 - 我猜它们是基于Java的第三方浏览器组件,其行为与Mozilla类似,而且MathWorks已经在11b和13a之间更改了组件。
如果我检测到UserAgent并假设包含字符串ICEBrowser
或Trident
的任何内容,这可能足以区分MATLAB帮助浏览器以用于大多数目的吗?显然,我必须及时了解13A版之后的UserAgent字符串。
感谢您的建议!
答案 0 :(得分: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
请注意,您不能简单地对这些进行字符串比较,因为字符串的某些部分会根据客户端计算机而变化(例如语言代码)。
另请注意,除了呈现HTML和CSS之外,其他功能也有很大差异。特别是,支持JavaScript和HTTP身份验证。
答案 1 :(得分:2)
icebrowser是一个java html渲染器,支持随机的html / javascript子集。从2012b开始获取主要帮助,从2013a开始获取“补充软件”帮助他们切换到客户端,这是一个围绕本地浏览器的瘦jni包装器,所以你在Windows上获得三叉戟(= Internet explorer),webkit(= safari) )在linux上的mac和gecko(= firefox)上。不幸的是,他们没有将用户代理更改为matlab
之类的明显内容。
这意味着从2013a开始,我们可以使用具有真实浏览器功能的css / javascript渲染,但获得您在开放网络上的所有跨浏览器问题。在2013年之前,浏览器的功能更加有限,但您只需要担心一个浏览器。
我正在寻找一种可靠的方法来检测matlab:协议是否得到支持,但我找到的只是你的问题: - )