检测MATLAB帮助浏览器
我想为大型MATLAB应用程序创建一些HTML文档,主要在MATLAB帮助浏览器中查看,从11b开始在任何版本的MATLAB中查看。这将有一些自定义CSS(但没有非常复杂) 但是,我也希望相同的文档可以在其他浏览器中查看。我关心Chrome、IE9和IE10,不过也欢迎支持其他浏览器。我想把文件整理一下检测MATLAB帮助浏览器,matlab,Matlab,我想为大型MATLAB应用程序创建一些HTML文档,主要在MATLAB帮助浏览器中查看,从11b开始在任何版本的MATLAB中查看。这将有一些自定义CSS(但没有非常复杂) 但是,我也希望相同的文档可以在其他浏览器中查看。我关心Chrome、IE9和IE10,不过也欢迎支持其他浏览器。我想把文件整理一下 所有浏览器(包括MATLAB帮助浏览器)的外观基本相同,但是 在MATLAB帮助浏览器中显示时,在一些方面看起来有所不同-特别是,我希望MATLAB:链接的显示和行为有所不同,因为它们在MATL
MATLAB:
链接的显示和行为有所不同,因为它们在MATLAB帮助浏览器之外不受支持matlab:
协议,但从浏览其他StackOverflow答案来看,这是不可能的。考虑到我需要支持Chrome,甚至不可能尝试按照matlab:
链接来检测它是否失败,因为Chrome显然是无声地失败的。喝倒采因此,我的下一个想法是使用JavaScript来检测浏览器的用户代理。Matlab11b使用ICEbrowser
报告自己为Mozilla4.0,而13a使用Trident6
报告自己为Mozilla4.0。我不完全确定这些是什么——我猜它们是第三方基于Java的浏览器组件,其行为类似于Mozilla,MathWorks在11b和13a之间更改了该组件
如果我检测到UserAgent并假设任何包含字符串ICEBrowser
或Trident
的内容,这是否足以区分MATLAB帮助浏览器的大多数用途?显然,对于13a之后的发行版,我必须及时更新UserAgent字符串
谢谢你的建议 icebrowser是一种java html呈现程序,支持html/javascript的随机子集。从2012b开始的主要帮助和从2013a开始的“补充软件”帮助,他们已经切换到一个客户端,该客户端是一个围绕本机浏览器的瘦jni包装,因此您可以在windows上使用trident(=internet explorer),在mac上使用webkit(=safari),在linux上使用gecko(=firefox)。不幸的是,他们没有将用户代理更改为具有任何明显的功能,如
matlab
。
这意味着,从2013a开始,我们可以使用css/javascript呈现和真正的浏览器功能,但可以获得开放web上的所有跨浏览器问题。在2013a之前,浏览器的功能非常有限,但您只需要担心一个浏览器
我一直在寻找一种可靠的方法来检测matlab:协议是否受支持,但我发现的只是您的问题:-)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身份验证的支持。谢谢Florian-我很抱歉,我早就应该接受了。@SamRoberts:没问题,很高兴我能帮到你!