如何通过jQuery滚动/动画iframe。适用于FF,IE,Safari但不适用于Chrome

时间:2011-12-02 14:13:29

标签: jquery google-chrome

我的简单例子:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Iframe Scrolling Test</title>
        <script type="text/javascript" language="javascript" src="jquery-1.7.1.min.js"></script>
        <script type="text/javascript">
            function scroll() {
                var iframeDocx = $("#tpTopicContentIframe");
                iframeDocx.contents().find("html,body").animate({ scrollTop: 1000 }, 1000);
            };
        </script>
    </head>

    <body>
        <a href="#" onclick="scroll();">Scroll to 1000px</a>
        <div id="tpTopicContentIframeContainer">
            <iframe frameborder="0" id="tpTopicContentIframe" src="docpart.html" style="height: 400px; width: 600px;"></iframe>
        </div>
    </body>
</html>

在Chrome中,我收到此错误:

  

JavaScript尝试使用URL文件访问框架:/// C:/Users/DENIS/Projects/Tests/Iframe%20Scrollto/docpart.html来自带有URL文件的框架:/// C:/ Users / DENIS / Projects /Tests/Iframe%20Scrollto/index.html#。域,协议和端口必须匹配。

但它是同一个域名。它适用于FF,IE,Safari但不适用于Chrome。

为什么Chrome如此严格?如何在所有浏览器中使用它?

1 个答案:

答案 0 :(得分:0)

浏览器还没有正确处理file://协议。只要页面来自同一个域,如果您通过http访问该页面,您的代码就可以正常运行。