2012-12-16 49 views
-1

我已经得到这个更早的工作,但由于某种原因,它不再有效。有人能解释我为什么现在不行吗?jquery通过iframe访问顶级文档

第一页包含的iframe:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
    <head> 
     <title>Test 1</title> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
    </head> 
    <body> 
     <div id="thediv" style="background: #ffff00;"> div </div> 
     <iframe id="theframe" src="test2.html"></iframe> 
    </body> 
</html> 

iframe内容的

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
    <head> 
     <title>test 2</title> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
     <script> 
      $(document).ready(function() { 
       $("#clickme").click(function(){ 
        $("#thediv", top.document).css("background","#ff0000"); 
        alert($("#thediv", top.document).text()); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <a href="#" id="clickme">clickme</a> 
    </body> 
</html> 
+0

确定更多的测试它似乎iframe是行事像顶级文件..不知道为什么呢。 – Scott

+0

好吧,如果我添加一个div到iframe内容的ID为“thediv”,代码会对该div做出反应而不是top.document ... – Scott

回答

0

这是工作的罚款在Firefox 9

记住。点击()不适用于动态添加的元素。

更新:由于安全原因,这是不允许的。请参阅此线程:Unsafe JavaScript attempt to access frame with URL

+0

你是正确的,它在ff9中工作,但它不在chrome中。 ..这是在同一个域中,所以它不应该违反任何安全..我目前在另一个网站上运行类似的东西,我在iframe中使用top.document来隐藏在chrome中工作的父母...这个为什么我很困惑 – Scott

+0

Chrome在java脚本控制台中显示安全警告。 – ATOzTOA

0

ok我无法在我的本地计算机上工作,但是在我的活动文件中我在iframe src路径中使用了完整的网址,即使它位于相同的域中,吨工作...删除后的url路径它似乎工作...无论如何感谢