Add a bookmark that is only javascript, not a URL

JavascriptBookmarkletBookmarks

Javascript Problem Overview


I'm thinking that the reason I can't do this is because it might be a huge security hole, but here goes...

I want to have a bookmark on my browser (FF3, preferably) that is only a snippet of javascript code. It would merely construct a URL based on the current date and then do a window.location = on that URL.

I know that I could make a page and keep it on my local machine and just refer to it that way, but I was just wondering if you could bypass that step and actually have the "location" of the bookmark really just be javascript. I could have sworn that this was possible years ago, but I can't find anything that tells me either way now.

Javascript Solutions


Solution 1 - Javascript

What you want is a http://en.wikipedia.org/wiki/Bookmarklet">bookmarklet</a> they are easy to create and should work in most major browsers.

Edit: Stack overflow seems not to allow creating bookmarklets in the context of the site, basically you can create a new bookmark and type the following in the location field

javascript:window.location='http://www.google.com/search?q='+Date()</pre>

to get a bookmarklet that searches google for the current date.

Solution 2 - Javascript

It is worthy of note that you can put that in a function wrapper as well. imranamajeed nicely illustrated that for us... but apparently I'm too new to the site to up his post. :P

so for clarity:

javascript:(function(){
  location.href = location.href + "#";
})();

(the carriage returns did not affect performance in chrome and IE)

Solution 3 - Javascript

One minor catch. IE can only handle a 508 character URL in this format. If you save it in IE with a url longer than this, it will truncate without warning and thus fail.

If you need a really complex script, you'll need to use a "hosted" bookmarklet, where you have a short bookmark that injects a script tag into the page, to "call" your hosted bookmarklet.

It isn't as nice/portable, but its the only workaround.

Solution 4 - Javascript

Google Bookmark

javascript:(function(){var%20a=window,b=document,c=encodeURIComponent,d=a.open("http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk="+c(b.location)+"&title="+c(b.title),"bkmk_popup","left="+((a.screenX||a.screenLeft)+10)+",top="+((a.screenY||a.screenTop)+10)+",height=420px,width=550px,resizable=1,alwaysRaised=1");a.setTimeout(function(){d.focus()},300)})();

Solution 5 - Javascript

Well, I just created a bookmark in FF3, went back and updated it and added the following test:

javascript:alert('Wacky%20test%20yo');

Low and behold, after I saved and loaded, I was able to get my alert.

I'm sure you can work up something similar for your needs.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMatt DawdyView Question on Stackoverflow
Solution 1 - JavascriptPatView Answer on Stackoverflow
Solution 2 - JavascriptJoseph MarikleView Answer on Stackoverflow
Solution 3 - JavascriptscunliffeView Answer on Stackoverflow
Solution 4 - JavascriptimranamajeedView Answer on Stackoverflow
Solution 5 - JavascriptDillie-OView Answer on Stackoverflow