/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 906 - (hide annotations)
Fri Dec 26 01:01:37 2008 UTC (15 years, 4 months ago) by dpavlin
File size: 1731 byte(s)
cleanup iframe transport which now transfers to div
(which seems to be only way to get full height resizing
of iframe which doesn't seem to work well at all)
1 dpavlin 905 package Frey::Web::IFrame;
2     use Moose;
3    
4     extends 'Frey';
5     with 'Frey::Web';
6     #with 'Frey::Storage';
7    
8     has skeleton => (
9     is => 'rw',
10     isa => 'Str',
11     required => 1,
12     default => 'skeleton',
13     );
14    
15     sub as_markup {
16     my ($self) = @_;
17    
18 dpavlin 906 $self->add_js(q`
19 dpavlin 905 function ifr_close() {
20 dpavlin 906 self.document.getElementById('ifr_target').style.display = 'none';
21     self.document.getElementById('ifr_close').style.display = 'none';
22 dpavlin 905 }
23     function ifr_show() {
24 dpavlin 906 self.document.getElementById('ifr_loading').style.display='';
25     }
26     function ifr_transfer(f) {
27     self.document.getElementById('ifr_loading').style.display='none';
28 dpavlin 905 self.document.getElementById('ifr_close').style.display='';
29 dpavlin 906 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 dpavlin 905 }
37 dpavlin 906 `);
38 dpavlin 905
39     my $html = qq|
40 dpavlin 906 <div>
41     <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     <!-- 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 dpavlin 905 |;
47    
48     $html .= $self->iframe_open('/Frey::Web::IFrame','introspect in iframe');
49    
50     return $html;
51     }
52    
53     sub iframe_open {
54     my ($self,$url,$text) = @_;
55    
56     qq|
57 dpavlin 906 <a href="$url" target="transport_iframe" onclick="ifr_show(); return true;">$text</a>
58 dpavlin 905 |
59     }
60    
61     1;

  ViewVC Help
Powered by ViewVC 1.1.26