18 Jun 2001 (updated 18 Jun 2001 at 02:10 UTC)
»
Sun Jun 17 19:04:32 PDT 2001
The Wonderful
World of Javascript
I started thinking about a way
to take a visible page in a browser, and configure some Plucker
parameters on that page, and then have it gathered for you,
or have the values build a home.html file for you, so you
can Pluck that page at your next frequency.I've never
done Javascript programming before (can I really call it
that?), but
here's what I have so far after about 2 hours of tinkering
(it's a Javascript "popup" wizard
walkthrough sort of thing), which will prompt for the URL
(it
snarfs it from the current page), an expiration time on the
cookie (defaults to 1 day), and then the maxdepth of that
URL, and sets two local cookies for those values. When it's
all working (or I hit the string length limit on bookmark
Location fields), it will walk the user through the full
gamut of settings for that URL.
javascript:q7Hm8=prompt('This webpage has ' +
document.links.length + ' links.\n\nBelow is the URL of the
current webpage. We can now store this value in a \n local
cookie on your machine. Once your
selected Plucker parameters are set,\nwe can then create a
home.html file for you with these
parameters.\n',location.href);
if(q7Hm8!=null) {
// Prompt for two separate vals
// which will be stored in two
// cookies on the local machine
pVj5D=86400000*prompt('Expires in...(days)','1');
m3xD=prompt('How deep would you like to gather' +
location.href,'1');
// Prompt for the maxdepth value here
1m4g3s=prompt('How deep would you like to gather' +
location.href,'1');
dT9v=new Date;dT9v.setTime(dT9v.getTime()+pVj5D);
// Store the first cookie (URL)
void(document.cookie='PluckerURL='+escape(q7Hm8)+';
expires='+dT9v.toGMTString());
// Store the second cookie (maxdepth)
void(document.cookie='PluckerMaxdepth=
'+escape(m3xD)+';
expires='+dT9v.toGMTString());}else{void(null)
}
So far, this works, and properly sets the cookies. Why do I
want to do this in a Javascript fashion? because my goal
here is to make a Plucker "bookmarklet" that most
users can use to ease their pain of Plucker configuration
and sync'ing.
An example of how it can be used (for this current page)
is here
Reading the
cookies back is a bit simpler. I won't bore you with the
code, but it allows me to do some interesting things with
it. The problem with Javascript is that I can't launch a
local client application (plucker-build in this example, which is
used to actually gather the content itself), nor can I write
to
a local configuration file. I can, however, put the data in
a popup browser window, and have the user do a SaveAs from
the menu on that window. It's not the best solution, but
short of having to write several different plugins for each
architecture,
it will work for the moment.
I'm still trying to find out
if Javascript has checkbox and <option select...> type
of elements so I can make a real application out of this, in
a client-side popup dialog "wizard" thingy.
Why am I not
doing this fully in a webpage-style
application? Because then you lose focus of the webpage
you're on that you want to Pluck, and this must run
client-side. I suppose I could make a webpage that contained
similar code, and then submitted the URL to my server for
final parsing and gathering, but my server doesn't have the
bandwidth for that right now.
This all started from
my original search
google bookmarklet. You can click on it and it will pop
up an entry dialog,
or you can highlight words on the webpage, and click on it
(go ahead, try it) and it will send that highlighted text to
google as the search criteria.
I started playing a bit,
and came up with another weird one to translate
the current webpage into German (or any other language)
Mantis
The bugtracker is up. Currently supports Plucker, pilot-link, pilot-mailsync, POSE, and a few other projects. I made
some cosmetic changes to the
layout, and cleaned up some of the PHP code. I'm
trying to learn the language, but it's slow going. Worked
for a year with rasmus, and
didn't even use
the language once for anything
production. EEP!
As the Task List Turns... (unordered)
- Embedded Linux Course, tightening deadlines, scope
creep.
- Plucker Bookmark Assistant needs a
version update and will begin handling IE
as well as Netscape and Mozilla
bookmarks. I don't know what format Konqueror uses, or some of the other
browsers, but I can support them too, in time. I found URI::Bookmark which may help a bit.
- The Plucker Perl Spider needs a revisit, and
an update. Hasn't been touched in 11 months. EEP! I have all
new ideas for it.
- pilot-link 0.9.5 needs to be released. I
wish we could get the final parts of that Ralf's USB sync
fixes pushed in.
- Update the main gnu-designs webpage. I have a new design idea here that I'm tinkering
with.
- Chest x-ray.
- ...buncha other things...
It's been a busy Sunday. This week promises to be incredibly
productive for me. I still have to be cranking basically 26
pages a day out of this Embedded Linux Course.
My hands
hurt.