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'); |
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 |
|
|