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:
  1. var filelist = Class.create()  
  2.    filelist.prototype = {  
  3.       initialize(url, path){  
  4.       .  
  5.       .  
  6.       .  
  7.       }  
  8.       // stb  
  9.       .  
  10.       .  
  11.       .  
  12. }  
az iframe oldalán:
  1. <script type="text/javascript">  
  2. var message = '<?php print $_GET['message']>';    
  3. function upload(){  
  4.    if(message != '')  
  5.    {               
  6.      new parent.filelist('filelist.php''<?=$_GET['path']?>');  
  7.      alert(message);  
  8.    }  
  9. }  
  10. </script>   
  11. </head>  
  12. <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
  1. var filelist = Class.create();  
  2.    filelist.prototype = {  
  3.      initialize:function(url, path){  
  4.           this.url = url;  
  5.           this.path = path;  
  6.           this.list();  
  7.      },                
  8.          
  9.      list:function(){                                                                                                           
  10.            var pars = 'path=' + this.path ;                               
  11.          $('filelist_div').innerHTML = '';                
  12.            var myAjax = new Ajax.Updater(  
  13.                         {success: 'filelist_div'},   
  14.                         this.url,   
  15.                       {  
  16.                              method: 'post',   
  17.                              parameters: pars,   
  18.                              onFailure: this.reportError.bind(this),  
  19.                              onLoading: this.show_kereses.bind(this),  
  20.                  onComplete: this.add_listeners.bind(this)                             
  21.                         });      
  22.     },                  
  23.       
  24.     reportError: function(request){  
  25.            alert('Hiba a szerver oldalon.');  
  26.     },   
  27.       
  28.     show_kereses: function(resp){         
  29.        $('filelist_div').innerHTML = 'képek lehívása';  
  30.     },       
  31.       
  32.     add_listeners: function(resp, json){           
  33.        var imgs = $A($('filelist_div').getElementsByTagName('img'));         
  34.        new img_listeners(imgs, 'list_item_over''list_item');  
  35.     }                         
  36. }             
Ezt kellene ugyanebbe az oldalba beágyazott iframe-ból meghívni. Hogyan lehetséges ez?