【问题标题】:JavaScript Method results in Non Secure Item IE6JavaScript 方法导致非安全项目 IE6
【发布时间】:2009-06-30 22:10:43
【问题描述】:

所以我对这个感到困惑。我有一个函数负责在使用 SSL 上的 IE6 查看我的网页时出现非安全项目警告消息。如果我注释掉整个函数,那么消息就会消失。如果我只是注释掉一个方法调用它仍然存在。真正让我发疯的是,如果我从方法中删除所有逻辑....消息仍然存在???!!!我真的必须注释掉包括签名在内的整个方法。该方法包含 JQuery 库逻辑,但我不明白为什么在注释除签名之外的所有函数逻辑时这会很重要。有人见过这个吗?

函数如下:

function styleNavigationCorners() {
        if (!($.browser.msie && $.browser.version.substr(0, 1) == '6')) {
            $(".DecisionPointTitle").corner({
                tl: { radius: 8 },
                tr: { radius: 8 },
                bl: { radius: 8 },
                br: { radius: 8 },
                antiAlias: true,
                autoPad: false
            });
            $(".DecisionPointHeadline").corner({
                tl: { radius: 8 },
                tr: { radius: 8 },
                bl: false,
                br: false,
                antiAlias: true,
                autoPad: false
            });
            $("#NavigationFooter").corner({
                bl: { radius: 8 },
                br: { radius: 8 },
                tl: false,
                tr: false,
                antiAlias: true,
                autoPad: false
            });
        }

    }

这仍然给我不安全的警告? :

   function styleNavigationCorners() {
//            if (!($.browser.msie && $.browser.version.substr(0, 1) == '6')) {
//                $(".DecisionPointTitle").corner({
//                    tl: { radius: 8 },
//                    tr: { radius: 8 },
//                    bl: { radius: 8 },
//                    br: { radius: 8 },
//                    antiAlias: true,
//                    autoPad: false
//                });
//                $(".DecisionPointHeadline").corner({
//                    tl: { radius: 8 },
//                    tr: { radius: 8 },
//                    bl: false,
//                    br: false,
//                    antiAlias: true,
//                    autoPad: false
//                });
//                $("#NavigationFooter").corner({
//                    bl: { radius: 8 },
//                    br: { radius: 8 },
//                    tl: false,
//                    tr: false,
//                    antiAlias: true,
//                    autoPad: false
//                });
//            }

        }

我搜索了重复的函数签名,但没有找到。任何人都可以帮忙吗?谢谢!

-尼克

【问题讨论】:

    标签: javascript jquery internet-explorer ssl https


    【解决方案1】:

    IE6 在这里包含一个错误。

    JavaScript 协议 URI 被视为不安全的,这会在遇到它们时导致混合内容警告。请在此处查看我的答案:How To Tell What Files IE Thinks Are "nonsecure"?,该工具可帮助您验证是否是导致问题的 JavaScript 协议 URI。

    【讨论】:

    • 在上述问题的情况下,我相信提琴手无济于事
    • 不会,但是我在回复中提到的 ScriptFree 工具会。
    • 啊抱歉,我看到了你的名字和瞬间的思想提琴手!
    【解决方案2】:

    我可以假设您使用的是curvy corners jquery wrap吗? 如果是这样,那么您会发现该库存在以下问题。它在 ie6 上运行以下内容

      document.write("<script id='__ie_onload' defer='defer' src='javascript:void(0)'><\/script>");
    

    将 src 设置为 void 将导致非安全警告。 IIRC,您可以尝试将其更改为 javascript:false - 再次进行另一个黑客攻击,甚至在服务器上包含一个空白文件并指向它以避免肯定的警告。无论您选择什么,都必须更改源库。

    顺便说一句 - 你真的需要那些角落吗? 26k 缩小的 js 是一个沉重的代价!

    【讨论】:

    • 是的.. 我需要转角。该库确实包含此 IFrame... 将 src 更改为 javascript:false;就是答案。
    • 我使用的是 HTTPS,而 src=javascript:false 对我不起作用。错误仍然存​​在。相反,我使用 src=//0src=https:javascript:false
    【解决方案3】:

    我遇到了同样的 SSL 错误,但没有对资源进行 HTTP 调用。在代码中找到 javascript(void) 5 次,这就是当我删除这些部分时错误消失了。只是为了让大家知道什么对我有用,可以保留碎片并消除错误...

    =//0 不起作用,因为它会尝试将用户带到页面 0.0.0.0

    =https:javascript:false 不起作用,因为它试图将用户带到一个页面并得到 404。

    对我来说,我并不真正需要 href,因为我使用 和 onclick 命令来显示或隐藏页脚的不同部分。这是我必须将代码更改为的内容。

        <li id="li_MainMenu"    class="li_click on" title="Categories" onclick="showHide(this.getAttribute('id').replace( 'li_', '')); onOff(this.getAttribute('id'));"><a href="javascript(void);">Why Factory Bunk Beds </a></li>
    

    改为:

        <li id="li_MainMenu"    class="li_click on" title="Categories" onclick="showHide(this.getAttribute('id').replace( 'li_', '')); onOff(this.getAttribute('id'));"><a>Why Factory Bunk Beds </a></li>
    

    我只是删除了:

        href="javascript(void);"
    

    来自标签,它起作用了。

    【讨论】:

      【解决方案4】:

      这是在脚本标签内吗?或者脚本是否包含在 src 属性中?如果它在脚本标签内,我不知道它为什么会这样做。

      另外,您能给我们一个指向此页面的链接吗?


      试试:

      <script type="text/javascript" src="https://path/to/file"></script>
      

      【讨论】:

      • 此脚本位于外部 js 文件中,该文件通过 src 属性获取包含。不。不幸的是,该页面不是公开托管的。
      • 如果是外部文件,请尝试通过包含协议和文件的完整路径名来强制 IE6 使用 HTTPS:即“https://path/to/file”(注意有空格来强制评论不要变成链接)
      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2011-04-13
      • 2015-11-07
      相关资源
      最近更新 更多