2011-12-02 66 views
1

我簡單的例子:如何通過jQuery滾動/動畫iframe。在FF,IE和Safari但不是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 attempt to access frame with URL file:///C:/Users/DENIS/Projects/Tests/Iframe%20Scrollto/docpart.html from frame with URL file:///C:/Users/DENIS/Projects/Tests/Iframe%20Scrollto/index.html#. Domains, protocols and ports must match.

但它是同一個域。它適用於FF,IE,Safari,但不適用於Chrome。

爲什麼Chrome如此嚴格?我如何在所有瀏覽器中完成這項工作?

回答

0

瀏覽器尚未妥善處理file://協議。只要頁面來自同一個域,如果通過http訪問頁面,您的代碼將正常工作。

+0

我在服務器上以http://的方式失敗。所以這不是一個解決方案。 :-( – podeig

+0

嘗試通過http訪問時出錯? –

相關問題