web-dev-qa-db-ja.com

コンソールからJavascript関数を呼び出す

ChromeのJavaScriptコンソールで、表示しているWebページに含まれる.jsファイルに属する関数を呼び出すにはどうすればよいですか?

60
L3v3L

それがクロージャ内にある場合、私はあなたができないと確信しています。

それ以外の場合は、functionName();を実行し、リターンを押します。

63
Kevin Ennis

コンソールがReferenceErrorを返す場所の例は、JQueryドキュメントの準備ができた関数内に関数を配置することです

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

成功するには、ドキュメント準備機能の外に機能を移動します

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

          //other stuff
}

次に、コンソールウィンドウで、関数名を「()」と入力して関数を実行します

myFunction()

また、関数の本体を印刷して、関数の機能を思い出させることができます。これを行うには、関数名から「()」を省略します

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

もちろん、ドキュメントのロード後に関数を登録する必要がある場合は、これを実行できませんでした。しかし、あなたはそれを回避できるかもしれません。

22
Tony Deacon

これは古いスレッドですが、検索して見つけました。私はWeb開発ツールを初めて使用します。主にFirefox開発ツール(Firefox v.51)ですが、Chrome DevTools(Chrome v.56)]もあります。

Developer Toolsコンソールから機能を実行できませんでしたが、これを見つけました

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

そして、スクラッチパッドにコードを追加し、機能を強調表示して実行し、添付のスクリーンショットごとにコンソールに出力することができました。

Chrome "Scratch JS"拡張も追加しました。FirefoxDeveloper ToolsのScratchpadと同じ機能を提供しているようです(下のスクリーンショット)。

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

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

enter image description here

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

enter image description here

6
Victoria Stuart

window.function_name()または直接function_name()を使用して呼び出すことができます

1
naresh

この問題を発見しました。インダイレクションを使用して回避できました。各モジュールで関数を定義し、それをindirectと呼びましょう:

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

各モジュールでその関数を使用すると、そのコンテキストで任意のコードを実行できます。

例えば。モジュールにこのインポートがある場合:

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

これにより、コンソールからimported_fnを呼び出した結果を取得できます:

indirect("imported_fn()");

evalを使用することが最初に考えられましたが、機能しません。私の仮説は、コンソールからevalを呼び出すことはコンソールのコンテキストにとどまり、モジュールのコンテキストで実行する必要があるということです。

0
Adrian