Calling a Javascript Function from Console

后端 未结 5 2028
礼貌的吻别
礼貌的吻别 2020-12-23 16:18

In Chrome\'s JavaScript console, how do I call a function that belongs to a .js file included in the webpage I am viewing?

相关标签:
5条回答
  • 2020-12-23 16:18

    An example of where the console will return ReferenceError is putting a function inside a JQuery document ready function

    //this will fail
    $(document).ready(function () {
              myFunction(alert('doing something!'));
              //other stuff
    }
    

    To succeed move the function outside the document ready function

    //this will work
    myFunction(alert('doing something!'));
    $(document).ready(function () {
    
              //other stuff
    }
    

    Then in the console window, type the function name with the '()' to execute the function

    myFunction()
    

    Also of use is being able to print out the function body to remind yourself what the function does. Do this by leaving off the '()' from the function name

    function myFunction(alert('doing something!'))
    

    Of course if you need the function to be registered after the document is loaded then you couldn't do this. But you might be able to work around that.

    0 讨论(0)
  • 2020-12-23 16:21

    you can invoke it using window.function_name() or directly function_name()

    0 讨论(0)
  • 2020-12-23 16:31

    I just discovered this issue. I was able to get around it by using indirection. In each module define a function, lets call it indirect:

    function indirect(js) { return eval(js); }
    

    With that function in each module, you can then execute any code in the context of it.

    E.g. if you had this import in your module:

    import { imported_fn } from "./import.js";
    

    You could then get the results of calling imported_fn from the console by doing this:

    indirect("imported_fn()");
    

    Using eval was my first thought, but it doesn't work. My hypothesis is that calling eval from the console remains in the context of console, and we need to execute in the context of the module.

    0 讨论(0)
  • 2020-12-23 16:37

    This is an older thread, but I just searched and found it. I am new to using Web Developer Tools: primarily Firefox Developer Tools (Firefox v.51), but also Chrome DevTools (Chrome v.56)].

    I wasn't able to run functions from the Developer Tools console, but I then found this

    https://developer.mozilla.org/en-US/docs/Tools/Scratchpad

    and I was able to add code to the Scratchpad, highlight and run a function, outputted to console per the attched screenshot.

    I also added the Chrome "Scratch JS" extension: it looks like it provides the same functionality as the Scratchpad in Firefox Developer Tools (screenshot below).

    https://chrome.google.com/webstore/detail/scratch-js/alploljligeomonipppgaahpkenfnfkn

    Image 1 (Firefox): http://imgur.com/a/ofkOp

    Image 2 (Chrome): http://imgur.com/a/dLnRX

    0 讨论(0)
  • 2020-12-23 16:44

    If it's inside a closure, i'm pretty sure you can't.

    Otherwise you just do functionName(); and hit return.

    0 讨论(0)
提交回复
热议问题