| MozRepl-Plugin-LinkTools documentation | Contained in the MozRepl-Plugin-LinkTools distribution. |
MozRepl::Plugin::Location - Dump window.location object as possible.
version 0.01
use MozRepl;
my $repl = MozRepl->new;
$repl->setup({ plugins => { plugins => [qw/OpenNewTab Location/] } });
$repl->open_new_tab({ url => "http://d.hatena.ne.jp/ZIGOROu/", selected => 1 });
sleep(5);
my $location = $repl->location();
print $location->{href};
Context object. See MozRepl.
Hash reference. See below detail.
Defalt 0, return location object dump of current tab. If this value is 1, dump location object from all tabs.
Toru Yamaguchi, <zigorou@cpan.org>
Please report any bugs or feature requests to
bug-mozrepl-plugin-location@rt.cpan.org, or through the web interface at
http://rt.cpan.org. I will be notified, and then you'll automatically be
notified of progress on your bug as I make changes.
Copyright 2007 Toru Yamaguchi, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| MozRepl-Plugin-LinkTools documentation | Contained in the MozRepl-Plugin-LinkTools distribution. |
package MozRepl::Plugin::Location; use strict; use warnings; use base qw(MozRepl::Plugin::Base); use JSON::Any qw(XS DWIW Syck JSON);
our $VERSION = '0.01';
sub execute { my ($self, $ctx, $args) = @_; my $params = {}; $params->{repl} = $ctx->repl; $params->{all} = ($args->{all}) ? 'true' : 'false'; my $command = $self->process('execute', $params); my $result = $ctx->execute($command); return JSON::Any->new->jsonToObj($result); }
1; # End of MozRepl::Plugin::Location __DATA__ __execute__ (function(all) { function getLocationAsJSON(tWindow) { var json = {}; for (var p in tWindow.location) { var type; try { type = typeof tWindow.location[p]; } catch (e) { continue; } if (type == "object" || type == "function" || type == "undefined") { continue; } json[p] = tWindow.location[p]; } return json; } if (all) { return JSONstring.make(Array.prototype.map.call( window.getBrowser().tabContainer.childNodes, function(tab) { return JSONString.make(getLocationAsJSON(tab.linkedBrowser.contentWindow)); } )); } else { return JSONstring.make(getLocationAsJSON(window.getBrowser().contentWindow)); } })([% all %]); __END__