代码之家  ›  专栏  ›  技术社区  ›  Ken Paul

如何检测IE是否作为受信任的站点访问我的站点?

  •  7
  • Ken Paul  · 技术社区  · 18 年前

    是否可以确定我的网站是否作为受信任的网站访问?在 another question 我们确定,一般来说,对客户端ie设置具有可见性是不谨慎的。这算不算例外?

    我想这样做的原因是,除非站点作为受信任的站点被访问(例如,客户端sendmail--不要询问),否则某些功能将无法工作,并且我希望能够警告用户。尽管页面中有很多警告,但许多用户仍然不阅读并向我们发送NastyGrams。我们希望通过检测这种情况并发出一个大的警告来减少电子邮件的数量,警告的内容基本上是“ 你没有读到警告,除非你改变设置,否则你所做的一切都不会起作用! “任何想法都是受欢迎的。

    编辑:在我们的商店中,客户端SeNemail只在网站被信任的情况下工作,而且由于安全性要求,我不能改变它,也不能切换到服务器端SeNEmail。然而,这并不是客户端SeDmail将失败的唯一原因,因此,我不能简单地捕捉SeNemail错误来确定这一点。另外,我不希望这降级为sendmail讨论。

    5 回复  |  直到 13 年前
        1
  •  2
  •   Joel Anair    18 年前

    下面是一个测试:

    function isTrustedIE(){
        try{
            var test=new ActiveXObject("Scripting.FileSystemObject");
        }
        catch(e){
            return false;
        }
    
        return true;
    }
    

    当然,如果用户禁用了该特定对象,即使是在受信任的站点上,也会失败。

        2
  •  0
  •   Adam Alexander    18 年前

    据我所知,这是不可能的,但你可能有一些运气测试一个更具体的条件,如具体的技术或你需要的技术的可用性。客户端代码在浏览器上放置了什么类型的需求(ActiveX、Java、脚本等)?知道这将是一个很好的开始,有助于找出如何测试客户机浏览器以满足客户机代码所需的环境。

        3
  •  0
  •   Gibbons    18 年前

    您可以请求当前登录用户的用户名,如果您得到它,您将知道站点位于“可信站点”或“本地Intranet”区域。

        4
  •  0
  •   luiscubal    18 年前

    也许,一个很好的方法来处理这个问题,同时仍然支持不寻常的组合,就是测试一个特定的行为是否成功。

    例如,如果你需要

    a.innerHTML = "abc"; 
    

    然后,您可以检查是否更改了内部NHTML。不幸的是,我不能保证所有的特征都是可以检测到的。 另外,try…catch语句可能非常有用。

        5
  •  0
  •   Ben Barden    13 年前

    在您的情况下(您正在处理的具体问题是sendmail失败),我仍然建议您捕获sendmail失败,然后给出一个更一般的答案。”你的邮件失败了。它可能因为以下任何原因而失败,然后抛出一个项目符号列表,顶部是“不信任此网站”的粗体字。如果sendmail失败的原因不是您的站点不受信任,那么您的用户可能也需要知道这一点。