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

时间:2008-10-31 19:54:52

标签: javascript internet-explorer settings

是否可以确定我的网站是否作为受信任的站点进行访问?在another question中,我们确定,一般来说,了解客户端IE设置是不明智的。这是否有资格作为例外?

我想这样做的原因是,除非将站点作为可信站点进行访问(例如客户端sendmail - 请不要问),否则某些功能将无法运行,我想能够警告用户。尽管页面中有许多警告,但许多用户仍然没有阅读,并向我们发送令人讨厌的图表。我们希望通过检测这种情况来减少电子邮件量并闪烁一个大的警告,基本上说“您没有阅读警告,在您更改设置之前,您尝试做的事情将无法工作!“欢迎任何想法。

编辑:在我们的商店中,客户端sendmail仅在站点可信时才有效,由于安全要求,我无法更改,也无法切换到服务器端sendmail。但是,这不是客户端sendmail失败的唯一原因,因此我不能简单地捕获sendmail错误来确定这一点。另外,我不希望这会降级为sendmail讨论。

5 个答案:

答案 0 :(得分:2)

以下是您可以使用的测试:

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

    return true;
}

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

答案 1 :(得分:0)

根据我的理解,这是不可能的,但您可能会对更具体的条件进行一些运气测试,例如您需要的特定技术或技术的可用性。您的客户端代码在浏览器上放置了哪些类型的要求(ActiveX,Java,脚本等)?知道如何根据客户端代码所需的环境测试客户端浏览器是一个很好的开端。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

或许,处理这个问题的一个好方法是在测试特定行为是否成功的同时测试它是否成功。

例如,如果您需要

a.innerHTML = "abc"; 

然后您可以检查innerHTML是否已更改。不幸的是,我无法向您保证所有功能都是可检测的。 另外,try ... catch语句可能非常有用。

答案 4 :(得分:0)

在您的情况下(您正在处理的具体问题是sendmail失败),我仍然建议捕获sendmail失败,但然后给出一个更一般的答案。 “你的邮件已经失败了。由于以下任何原因,它可能会失败”然后投入一个项目符号列表,其中“没有让这个站点值得信任”,顶部是大胆的。如果sendmail因为您的网站不受信任而失败,那么您的用户可能也需要知道这一点。