2011-12-28 143 views
4

我已经有了一个简单的html代码,并且在其上有一个iframe,并且我想访问父级以外iframe的全局变量。使用Chrome访问全局变量

任何人都知道为什么铬不想让我快乐? :)

iframe的代码在ff中工作正常,即...但不是chrome。

HTML代码:

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
<script> var one = "two"; </script> 
..... 
<body>  
<iframe name="process" id="process" src="" frameborder=1></iframe>  
</body> 
</html> 

,iframe代码:

<html> 
<head> 
<script> alert("Inside step 1 : "+parent.one); </script> 
</head> 
<body> 
    STEP 1 
</body> 
</html> 
+0

可能的重复:http://stackoverflow.com/questions/5777289/cant-access-content-of-another-frame-in-chrome – ean5533 2011-12-28 16:14:38

+0

@ ean5533是不一样的事情,因为我正在访问一个全球范围可变的,而不是来自不同框架的内容与他们的ID。另外,这是一个iframe – dyoser 2011-12-28 16:29:08

回答

1

不幸的是,你不能这样做,在JavaScript中。每个iframe都包含在它自己的document中。此document对象包含该iframe的全局范围。您无法访问全局范围之外的任何内容,因此iframe只能使用iframe内创建的变量。

+0

好吧,如果我把提供的HTML放到测试页面中,我可以正确地调用iframe上的alert(parent.one)... – 2011-12-28 16:16:56

+0

@Matt Bradley Nope,正如我在ff和ie中所说的我可以访问iframe中全局范围内的变量。如果主体和iframe位于同一主机中,则可以访问iframe外部的变量....不需要window.message,因为它们位于相同的域中 – dyoser 2011-12-28 16:17:04