Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embed javascript as base64

I'm working on a small GreaseMonkey script where I would like to embed a jQuery plugin (Markitup) so that the script is fully self contained (images + js) except for jQuery which is served from google.

I found the site http://www.greywyvern.com/code/php/binary2base64 which says that you can embed javascript with the href if you base64 encode the script, much like serving images as basse64 from CSS.

<script type="text/javascript" href="data:text/javascript;base64,dmFyIHNjT2JqMSA9IG5ldyBzY3Jv..."></script>

So i tried that but couldn't get it to work at all, using Firefox 3.0.5 on OS X.

I put together a small test page to isolate the problem but couldn't get it to work at that page either.

<!DOCTYPE HTML>
<html>
   <head>
      <title>Title</title>
      <meta charset="utf-8">
   </head>
   <body>
      <script href="data:text/javascript;base64,YWxlcnQoJ2FzYWRhc2QnKTsK"></script> 
      <script>alert('a');</script>  
   </body>
</html>

The base64 string (YWxlcnQoJ2FzYWRhc2QnKTsK) says alert('asadasd'); so I'm supposed to get two alerts but the only one I see is the second one where the alert is located as text inside the script tag.

Am I doing something wrong or why isn't this working, any ideas?

like image 331
Daniel Johansson Avatar asked Dec 20 '08 15:12

Daniel Johansson


1 Answers

maybe just a thought but maybe the "href" should be "src" instead.

like image 152
John Boker Avatar answered Oct 04 '22 11:10

John Boker