2010-11-17 62 views
0

我在这种情况下呼叫的iFrame JS

的index.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Test</title> 
<script type="text/javascript" src="mootools.js"></script> 
<script> 
window.addEvent('domready', function() { 

var b=document.createElement('iframe'); 
b.src="about:blank"; 
b.style.height="0px"; 
b.style.width = "0px"; 
b.style.visibility="hidden"; 
b.style.border="none"; 
b.id = "my_frame"; 
b.src="about:blank"; 
     var headID = document.getElementsByTagName("head")[0]; 
headID.appendChild(b); 
var val = '<html><head>'; 
     val += '<scr' + 'ipt type="text/javascript" src="test.class.js"></scr' + 'ipt>'; 

     val += '</head><body></body></html>'; 
     var doc = b.contentWindow || b.contentDocument; 

     if (doc.document){ 
      doc = doc.document 
     } 

     doc.open(); 
     doc.write(val); 
     doc.close(); 
}); 
</script> 
</head> 
<body> 
<div id="main"></div> 
<script>var a = new Test();</script> 
<script>a.doSomething();</script> 
</body> 
</html> 

test.class.js:

var Test = new Class({ 

doSomething: function(){ 

alert("ok!"); 

} 

}); 

可以注入测试类到父窗口,不用像parent.frames["my_frame"].func();这样的东西?我只需要使用这种方式来呼叫类:

<script>var a = new Test();</script> 
<script>a.doSomething();</script> 

回答

1

应该不是这样的工作?

var a = new parent.frames["my_frame"].Test(); 
a.doSomething(); 
+0

这应该工作,但我想用干净的代码与parent.frames [“my_frame”] ...有一种方法? – Ste 2010-11-17 19:26:52