Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengesan Butiran Fungsi Pemanggil (Nombor Talian dan URL Sumber) dalam JavaScript?

Bagaimana untuk Mengesan Butiran Fungsi Pemanggil (Nombor Talian dan URL Sumber) dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-20 21:53:30895semak imbas

How to Trace Caller Function Details (Line Number and Source URL) in JavaScript?

Menjejaki Butiran Pemanggil dalam JavaScript: Nombor Talian dan URL Sumber

Untuk mengesan butiran fungsi pemanggil, termasuk nombor talian dan URL sumber, pertimbangkan pendekatan berikut:

Mendapatkan Nama Fungsi Pemanggil:

<br>var callerFunc = arguments.callee.caller.toString();<br>callerFuncName = (callerFunc.substring(callerFunc.indexOf("function") 8, callerFunc.indexOf("(")) || "anoynmous")<br>

Kod ini coretan memperoleh nama fungsi pemanggil.

Mendapatkan semula Nombor Talian Pemanggil:

Untuk mendapatkan nombor talian dari mana fungsi pemanggil digunakan:

function getErrorObject() {
    try {
        throw Error('');
    } catch (err) {
        return err;
    }
}

var err = getErrorObject();
var caller_line = err.stack.split("\n")[4];
var index = caller_line.indexOf("at ");
var clean = caller_line.slice(index + 2, caller_line.length);

Kaedah ini memanfaatkan sifat tindanan objek ralat JavaScript untuk mengakses nombor talian pemanggil.

Menentukan URL Sumber Pemanggil:

Malangnya, ia tidak mudah untuk mendapatkan URL sumber secara terus daripada fungsi pemanggil Walau bagaimanapun, anda boleh menggunakan bundler seperti webpack dengan peta sumber untuk menjana pemetaan antara kod yang digabungkan dan fail sumber, membolehkan anda memetakan nombor talian pemanggil ke lokasi sumber asalnya. .

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Butiran Fungsi Pemanggil (Nombor Talian dan URL Sumber) dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn