使用Chrome访问全局变量

4

我有一个简单的HTML代码,其中包含一个iframe,我想在父页面外部访问全局变量。

有人知道为什么Chrome不愿意让我开心吗? :)

该iframe的代码在Firefox,IE等浏览器中正常工作,但在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>

嵌入代码:

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

可能是重复问题:http://stackoverflow.com/questions/5777289/cant-access-content-of-another-frame-in-chrome - ean5533
@ean5533不是同一件事,因为我正在访问全局作用域变量,而不是使用其ID从不同帧中获取内容。此外,这是一个iframe。 - Tony
1个回答

1

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


如果我将提供的HTML放入测试页面中,我可以正确地在iframe上调用alert(parent.one)... - josh.trow
@Matt Bradley 不,正如我在 Firefox 和 IE 中所说的那样,我可以在 iframe 内部访问全局范围内的变量。如果主体和 iframe 在同一主机上,则可以访问 iframe 外部的变量...不需要 window.message,因为它们在同一域中。 - Tony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接