我的代码是:

<!DOCTYPE html>
<html>

  <body>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <iframe src="http://www.amway.in/Shopping/Products.aspx?pid=101154IDK&ctg=Nutrilite">
    <p>Your browser does not support iframes.</p>
    </iframe>
  </body>

  <style>
    iframe::-webkit-scrollbar {
      display: none;
    }
iframe {
  width: 600px;
  height: 800px;
}
  </style>

  <script>
$(window).bind("load", function() {
    $("iframe").contents().find(".left-nav").css("display","none");
});
  </script>

</html>


我想将css属性“ display”更改为“ none”,但页面加载后显示错误。


未捕获到的SecurityError:无法从“ HTMLIFrameElement”读取“ contentDocument”属性:阻止了源为“ null”的帧访问源为“ http://www.amway.in”的帧。请求访问的帧的协议为“文件”,正在访问的帧的协议为“ http”。协议必须匹配。

最佳答案

那是因为同源政策。


  同源策略限制了从一个来源加载的文档或脚本如何与另一个来源的资源进行交互。
  [...]
  
  跨域脚本API访问
  
  JavaScript API(例如iframe.contentWindowwindow.parentwindow.openwindow.opener)允许文档直接相互引用。当两个文档的来源不同时,这些引用将提供对Window和Location对象的有限访问。某些浏览器允许访问超出规范允许的更多属性。您可以使用window.postMessage代替文档之间的通信。


您可以阅读有关此主题的更多信息here

关于jquery - iframe显示:无任何作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22590492/

10-15 15:04