2011-06-07 70 views

回答

10

如果这些页面都在同一个领域,你可以调用父窗口的功能:

window.parent.zipPhoneCallback(zipphone); 

在父窗口中,你可以像这样定义一个函数:

function zipPhoneCallback(zipphone) { 
    ((console&&console.log)||alert)("zipphone = " + zipphone); 
} 
+0

我无法让它工作。你能进一步解释吗?另外,如何保持这种情况发生,直到加载iframe之后。我问的原因是因为直到在父框架上提交表单之前,我才加载iframe。 – zach 2011-06-07 21:08:22

+1

@zach:适合我。 [这是一个更具体的例子。](http://jsfiddle.net/P2tyb/)顺便说一下,你可能想要通过你的问题,如果有一个令人满意的答案,通过点击空心检查标记为答案在它旁边标记,此时它会变成绿色。 – icktoofay 2011-06-07 21:43:23

2

当心似乎有a Chrome browser issue with addressing variables from webpages to or from IFRAMES.此问题出现在离线测试中。

这且不说,假设你的浏览器实际实现的Javascript的基本功能,从您的主网页使用window.myiframename.zipphone

<IFRAME NAME="myiframename" SRC="myzipphoneiframefile.htm" .... 

<script type="text/javascript"> 
<!-- 
// then whatever you do with your variable 
// read it 
var z = window.myiframename.zipphone; 
// write to it 
window.myiframename.zipphone = "...."; 

等解决您的变量。

例子。

DOC1.HTM内容 -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>DOC1.HTM</title> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> 
</head> 
<body bgcolor=pink> 

<h1>DOC1.HTM</h1> 

<iframe name="iframename" src="doc2.htm"></iframe> 
<p> 
<br /> 
<a href="#" onclick="alert('The value of the variable test_var set by a script in DOC2.HTM embedded in the DOC1.HTM page by an iframe named IFRAMENAME as read from a script running in DOC1.HTM appears to be - ' + window.iframename.test_var);return false;">check variable</a> 
</p> 

</body> 
</html> 

DOC2.HTM内容 -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>DOC2.HTM</title> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> 
</head> 

<body bgcolor=red> 

<script type="text/javascript"> 

var test_var="testing, testing . . ."; 

</script> 


<h1>DOC2.HTM</h1> 
</body> 
</html> 

,即使与旧版本的Internet Explorer,但精美的作品尝试当Chrome和window.iframename离线测试由于Chrome问题,.test_var似乎未定义。

无论如何,请注意Chrome的未来版本修复此问题,因为Google的脸上有很多鸡蛋,但他们没有。

我在Chrome离线测试中解决了此问题。

感谢WebmasterWorld上的Lucy24的帮助。 http://www.webmasterworld.com/google_chrome/4689258.htm#msg4689342

Chrome的这个问题出现时,我的JavaScript正在测试离线和文件doc1.htm和doc2.htm是在我的电脑上的文件夹。

的doc1.htm & doc2.htm文件移动到文件夹中,我测试服务器端PHP程序,它可以在使用Windows Internet服务管理器意味着我可以使用HTTP地址的文件:/ /本地主机地址和宾果游戏,浏览器表现应该具有离线模式。

在我看来,Chrome的javascript不能在同一个离线文件夹中直接寻址文件,这不是“合法的”。

当您在自己的PC上运行自己的JavaScript文件时,绝对没有任何安全问题。或者,如果Chrome想要提供允许或禁止离线IFRAME变量范围的安全设置,那么确定,那就没问题。

错误信息并不完全清楚我提交和Lucy24很好地弄清楚它的含义。

如果Internet Explorer和Firefox等允许您脱机测试您的JavaScript,那么为什么不使用Chrome?

这么好做Lucy24。 Chrome不太好。

+0

好点+1当之无愧! – Alboz 2014-10-06 08:58:03

相关问题