/[Frey]/trunk/lib/Frey/Web/IFrame.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Web/IFrame.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 905 by dpavlin, Thu Dec 25 21:59:20 2008 UTC revision 906 by dpavlin, Fri Dec 26 01:01:37 2008 UTC
# Line 15  has skeleton => ( Line 15  has skeleton => (
15  sub as_markup {  sub as_markup {
16          my ($self) = @_;          my ($self) = @_;
17    
18          $self->add_js( 'static/Frey/Web/IFrame.js' );          $self->add_js(q`
   
         $self->add_js(q/  
19                  function ifr_close() {                  function ifr_close() {
20                          var e = self.document.getElementById('frey_iframe') || null;                          self.document.getElementById('ifr_target').style.display = 'none';
21                          if (!e) return;                          self.document.getElementById('ifr_close').style.display = 'none';
                         e.style.height = '0px';  
22                  }                  }
23                  function ifr_show() {                  function ifr_show() {
24                            self.document.getElementById('ifr_loading').style.display='';
25                    }
26                    function ifr_transfer(f) {
27                            self.document.getElementById('ifr_loading').style.display='none';
28                          self.document.getElementById('ifr_close').style.display='';                          self.document.getElementById('ifr_close').style.display='';
29                            if ( f.contentWindow.document.body ) {
30                                    var ifr_target = self.document.getElementById('ifr_target');
31                                    ifr_target.innerHTML = f.contentWindow.document.body.innerHTML;
32                                    f.contentWindow.document.body.innerHTML = ''; // XXX we can't just undef here!
33                                    ifr_target.style.display = '';
34                                    console.log( ifr_target );
35                            }
36                  }                  }
37          /);          `);
38    
39          my $html = qq|          my $html = qq|
40                  <a href="#" id="ifr_close" style="display:none;" onclick="ifr_close();this.style.display='none';return false;">close</a>          <div>
41                  <iframe id="frey_iframe" name="frey_iframe" width="100%" height="0" frameborder="0" border="0" onload="top.ifr_resize(this);">                  <a href="#" id="ifr_close" style="display:none;" onclick="ifr_close();return false;">close</a><span id="ifr_loading" style="display: none; background: #ff8;">Loading...</span>
42                  </iframe>                  <!-- we really need src="#" here to avoid onload when page loads -->
43                    <iframe src="#" name="transport_iframe" id="transport_iframe" style="display: none;" frameborder=0 border=0 onload="ifr_transfer(this);"></iframe>
44                    <div id="ifr_target" style="display: none"></div>
45            </div>
46          |;          |;
47    
48          $html .= $self->iframe_open('/Frey::Web::IFrame','introspect in iframe');          $html .= $self->iframe_open('/Frey::Web::IFrame','introspect in iframe');
# Line 43  sub iframe_open { Line 54  sub iframe_open {
54          my ($self,$url,$text) = @_;          my ($self,$url,$text) = @_;
55    
56          qq|          qq|
57                  <a href="$url" target="frey_iframe" onclick="ifr_show(); return true;">$text</a>                  <a href="$url" target="transport_iframe" onclick="ifr_show(); return true;">$text</a>
58          |          |
59  }  }
60    

Legend:
Removed from v.905  
changed lines
  Added in v.906

  ViewVC Help
Powered by ViewVC 1.1.26