检测MATLAB帮助浏览器

检测MATLAB帮助浏览器,matlab,Matlab,我想为大型MATLAB应用程序创建一些HTML文档,主要在MATLAB帮助浏览器中查看,从11b开始在任何版本的MATLAB中查看。这将有一些自定义CSS(但没有非常复杂) 但是,我也希望相同的文档可以在其他浏览器中查看。我关心Chrome、IE9和IE10,不过也欢迎支持其他浏览器。我想把文件整理一下 所有浏览器(包括MATLAB帮助浏览器)的外观基本相同,但是 在MATLAB帮助浏览器中显示时,在一些方面看起来有所不同-特别是,我希望MATLAB:链接的显示和行为有所不同,因为它们在MATL

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

但是,我也希望相同的文档可以在其他浏览器中查看。我关心Chrome、IE9和IE10,不过也欢迎支持其他浏览器。我想把文件整理一下

  • 所有浏览器(包括MATLAB帮助浏览器)的外观基本相同,但是
  • 在MATLAB帮助浏览器中显示时,在一些方面看起来有所不同-特别是,我希望
    MATLAB:
    链接的显示和行为有所不同,因为它们在MATLAB帮助浏览器之外不受支持
  • 问题1:即使使用1,我也会遇到困难,因为尽管我的CSS很简单,但MATLAB帮助浏览器似乎无法预测它支持CSS的哪些部分,而且在不同的MATLAB版本中,它似乎有很大的差异。我猜它根本没有记录在案。是否有人有在MATLAB帮助浏览器中使用CSS的经验/技巧

    问题2:我希望能够自动检测查看浏览器中是否支持
    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:没问题,很高兴我能帮到你!