1 |
package Frey::Bookmarklet; |
2 |
use Moose; |
3 |
|
4 |
=head1 NAME |
5 |
|
6 |
Frey::Bookmarklet - provide bookmarklets for developers |
7 |
|
8 |
=head2 SEE ALSO |
9 |
|
10 |
L<http://slayeroffice.com/tools/modi/v2.0/modi_help.html> |
11 |
|
12 |
=cut |
13 |
|
14 |
extends 'Frey'; |
15 |
with 'Frey::Web'; |
16 |
|
17 |
use File::Slurp; |
18 |
|
19 |
sub as_markup { |
20 |
my $self = shift; |
21 |
|
22 |
my $js = read_file( 'static/xpath.js' ); |
23 |
$js =~ s{//.*}{}gm; # remove comments so that compaction below doesn't screw code |
24 |
$js =~ s/\s\s+/ /gs; |
25 |
|
26 |
my $html = qq| |
27 |
<ul> |
28 |
<li>Inspectors</li> |
29 |
<ul> |
30 |
<li><a href="javascript:void($js);">xpath</a> (click again to inspect any element)</li> |
31 |
<li><a href="javascript:prefFile='';void(z=document.body.appendChild(document.createElement('script')));void(z.language='javascript');void(z.type='text/javascript');void(z.src='http://slayeroffice.com/tools/modi/v2.0/modi_v2.0.js');void(z.id='modi');">MODIv2</a></li> |
32 |
<li><a href="javascript:var%20firebug=document.createElement('script');firebug.setAttribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js');document.body.appendChild(firebug);(function(){if(window.firebug.version){firebug.init();}else{setTimeout(arguments.callee);}})();void(firebug);">Firebug Lite</a></li> |
33 |
</ul> |
34 |
<li>Frames management</li> |
35 |
<ul> |
36 |
<li><a href="javascript:f='';for(x=0;x<window.frames.length;x++){f+=x+':'+window.frames[x].name+'\\n';};d=prompt('Frame?\\n'+f,'');if (!d) { d=0 };window.location=window.frames[d].location;">x</a> close frame (with alert selector)</li> |
37 |
<li><a href="javascript:document.write('<HTML><HEAD></HEAD><FRAMESET ROWS=\\'50%,*\\'><FRAME SRC=' + location.href + ' name=left><FRAME SRC=' + location.href + ' name=right></FRAMESET></HTML>')">h</a> horizontal split</li> |
38 |
<li><a href="javascript:document.write('<HTML><HEAD></HEAD><FRAMESET COLS=\\'50%,*\\'><FRAME SRC=' + location.href + ' name=top><FRAME SRC=' + location.href + ' name=bottom></FRAMESET></HTML>')">v</a> vertical split</li> |
39 |
<!-- |
40 |
<li><a href=""></a></li> |
41 |
--> |
42 |
</ul> |
43 |
<li>Helpers</li> |
44 |
<ul> |
45 |
<li><a href="javascript:(function(){C=document.cookie.split(%22; %22);for(d=%22.%22+location.host;d;d=(%22%22+d).substr(1).match(/\..*\$/))for(sl=0;sl<2;++sl)for(p=%22/%22+location.pathname;p;p=p.substring(0,p.lastIndexOf('/')))for(i in C)if(c=C[i]){document.cookie=c+%22; domain=%22+d.slice(sl)+%22; path=%22+p.slice(1)+%22/%22+%22; expires=%22+new Date((new Date).getTime()-1e11).toGMTString()} location.reload()})()">xc</a> - remove cookies</li> |
46 |
</ul> |
47 |
</ul> |
48 |
|; |
49 |
|
50 |
return $self->html_page( |
51 |
title => 'Bookmarklets for developers', |
52 |
body => $html, |
53 |
) if $self->can('page'); |
54 |
|
55 |
return $html; |
56 |
} |
57 |
|
58 |
1; |