最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - How can I dynamically download and run a javascript script from a javascript console? - Stack Overflow

programmeradmin0浏览0评论

Is there a one-liner I could execute in a javascript console to download and execute a javascript script from a remote source?

I was looking to see if there was a nice way to download this script and use it for experimenting interactively on random pages which may not have say, jQuery loaded.

[edit: I'm aware I could dynamically create a script element but is there a nicer way to do this?]

Is there a one-liner I could execute in a javascript console to download and execute a javascript script from a remote source?

I was looking to see if there was a nice way to download this script and use it for experimenting interactively on random pages which may not have say, jQuery loaded.

[edit: I'm aware I could dynamically create a script element but is there a nicer way to do this?]

Share Improve this question asked Jul 16, 2010 at 7:23 jkpjkp 81.3k28 gold badges106 silver badges104 bronze badges
Add a comment  | 

3 Answers 3

Reset to default 10

I've written a little script for that.

var loadjQuery = function(cb){
   if(typeof(jQuery) == 'undefined'){
     var scr = document.createElement('script');
     scr.setAttribute('type', 'text/javascript');
     scr.setAttribute('src', 'http://code.jquery.com/jquery-latest.js');

     if(scr.readyState){
        scr.onreadystatechange = function(){
            if(scr.readyState === 'complete' || scr.readyState === 'loaded'){
               scr.onreadystatechange = null;
               if(cb === 'function'){
                  args = [].slice.call(arguments, 1);
                  cb.apply(this, args);
               }
            }
        };
     }
     else {
        scr.onload = function(){
           if(cb === 'function'){
              args = [].slice.call(arguments, 1);
              cb.apply(this, args);
           }
        };
     }

     var head = document.getElementsByTagName('head')[0];
     head.insertBefore(scr, head.firstChild);  
   }
}

This works cross-browser.

edit

I've updated that script as a function with a callback. Synopsis should be:

loadjQuery(function(something){
    // execute code after library was loaded & executed
});

Well, it is quite simple to take a long javascript snippet and put it all together into one line :)

This approach takes a few lines you could mix togehter into a oneliner (but i guess you are looking for a shorter solution). You will have to eval the contents of the two script tags to load Google AJAX libraries - that is all. You might need to do a call to get the first one though.

  1. Go to the remote source (e.g.: https://ajax.googleapis.com/ajax/libs/d3js/5.7.0/d3.min.js)

  2. Select all the js source (ctrl + a) and copy to the clipboard (ctrl + c)

  3. Go to the target website where you want to inject the js

  4. Open the console, paste the copied source and hit enter

All the functions of the library are available to you on the target website's console now.

发布评论

评论列表(0)

  1. 暂无评论