7

是否可以确定我的网站是否作为受信任的网站被访问?在另一个问题中,我们确定,一般来说,查看客户端 IE 设置是不明智的。这算不算例外?

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

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

4

5 回答 5

2

这是您可以使用的测试:

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

    return true;
}

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

于 2008-10-31T20:51:08.030 回答
0

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

于 2008-10-31T22:21:16.413 回答
0

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

例如,如果你需要做

a.innerHTML = "abc"; 

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

于 2008-11-03T19:59:38.320 回答
0

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

于 2008-10-31T20:17:29.817 回答
0

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

于 2013-03-19T21:28:49.700 回答