ugrás a tartalomhoz

JS objektum meghívása iframe-ben

_lacus_ · 2007. Jan. 22. (H), 20.52
Sziasztok,

az lenne a kérdésem, hogyan lehet egy, a szülő oldalon definiált JS objektumot (prototype 'osztályt') ugyanezen oldalon elhelyezett iframe-ben meghívni.

Az osztályt azért nem definiálhatom az iframe-ben meghívott oldalba, mert az osztály a prototype-ot használja és nem akarom itt is még egyszer behúzni az egész keretrendszert.

tehát:

szülő oldalon:

var filelist = Class.create()
   filelist.prototype = {
      initialize(url, path){
      .
      .
      .
      }
      // stb
      .
      .
      .
}
az iframe oldalán:

<script type="text/javascript">
var message = '<?php print $_GET['message']>';  
function upload(){
   if(message != '')
   {             
     new parent.filelist('filelist.php', '<?=$_GET['path']?>');
     alert(message);
   }
}
</script> 
</head>
<body onload="upload()">
A firebug ezt adja hibának:
this.initialize has no properties

Hol lehet a gond?
A segítséget előre is köszönöm.

Lacus
 
1

Scope loss problémának néz ki

w3net · 2007. Jan. 23. (K), 10.54
látni kellene azt a kódot is, ahol a this.initialize van meghivva.
2

itt a meghívandó osztály

_lacus_ · 2007. Jan. 23. (K), 12.32

var filelist = Class.create();
   filelist.prototype = {
     initialize:function(url, path){
          this.url = url;
          this.path = path;
          this.list();
     },              
       
     list:function(){                                          	     	        	     	                        		  
	       var pars = 'path=' + this.path ;                             
         $('filelist_div').innerHTML = '';	  			
	       var myAjax = new Ajax.Updater(
		    			{success: 'filelist_div'}, 
				     	this.url, 
			  		  {
						     method: 'post', 
						     parameters: pars, 
						     onFailure: this.reportError.bind(this),
						     onLoading: this.show_kereses.bind(this),
                 onComplete: this.add_listeners.bind(this)						     
					    });    
    },                
    
    reportError: function(request){
		   alert('Hiba a szerver oldalon.');
    }, 
    
    show_kereses: function(resp){       
       $('filelist_div').innerHTML = 'képek lehívása';
    },     
    
    add_listeners: function(resp, json){         
       var imgs = $A($('filelist_div').getElementsByTagName('img'));       
       new img_listeners(imgs, 'list_item_over', 'list_item');
    }            	        
} 	        
Ezt kellene ugyanebbe az oldalba beágyazott iframe-ból meghívni. Hogyan lehetséges ez?