


Get the code of the currently executed script file name in the browser_javascript tips
Background
A colleague asked a question, how to get the current file name in a JavaScript file dynamically inserted in the browser?
In addition to the server outputting a file name, there should only be the following three ways to obtain it in the script.
Solution A
The common solution can only be used for the introduction of static scripts tags on the page or a single dynamic load.
var scripts = document.getElementsByTagName('script');
var filename = scripts[scripts.length -1].src;
Dynamic insertion of multiple script tags:
loadScript('b.js?param=1')
loadScript('a.js?param=2')
loadScript('b.js?param=3')
loadScript('a.js?param=4')
/* Output
a.js >>> ; http://localhost:800/io/a.js?param=4
a.js >>> http://localhost:800/io/a.js?param=4
b.js >>> http://localhost:800/io/a.js?param=4
b.js >>> http://localhost:800/io/a. js?param=4
*/
Solution B
Abnormal type, only works on FireFox:
try {
throw new Error();
}
catch(exception){
console.log ( exception.fileName );
}
Solution C
My solution, operation source code:
requireScript('a.js?' Date.now(),function(text,src) {
console.log('text :',text);
globalEval('(function() { nvar __filename = "' src '";n' text 'n;})();');
})
Browser output:
<script> (function() { <br>var __filename = "a.js?1310971812334"; <br>var scripts = document.getElementsByTagName('script'); <br>console.log('a.js',' > >> ',scripts[scripts.length -1].src); <br>console.log(__filename); <br>;})();</script>
Advantages: reliable, cacheable, deferrable execution, scalable.
Restrictions: 1) Variable naming is agreed to be "__filename"; 2) Same origin policy.
I also thought of this loading strategy to load the popular CoffeeScript, such as:
requireScript('script.coffee',function(text,src) {
if( isCoffeeScript(src) )
globalEval( CoffeeScript.compile(text) );
})
Link
Passing JavaScript arguments via the src attribute
View or download

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The method of customizing resize symbols in CSS is unified with background colors. In daily development, we often encounter situations where we need to customize user interface details, such as adjusting...

Using locally installed font files in web pages Recently, I downloaded a free font from the internet and successfully installed it into my system. Now...

The problem of container opening due to excessive omission of text under Flex layout and solutions are used...

How to solve the display problem caused by user agent style sheets? When using the Edge browser, a div element in the project cannot be displayed. After checking, I posted...

How to use JavaScript or CSS to control the top and end of the page in the browser's printing settings. In the browser's printing settings, there is an option to control whether the display is...

Why do negative margins not take effect in some cases? During programming, negative margins in CSS (negative...

How to use locally installed font files on web pages Have you encountered this situation in web page development: you have installed a font on your computer...

Discussion on using custom stylesheets in Safari Today we will discuss a custom stylesheet application problem for Safari browser. Front-end novice...
