我们都知道JavaScript获取当前路径的方法用:
var currentFullPath = window.location.href; console.log(currentFullPath);
这样就可以获取完整路径。
今天我的站长站分享不是获取当前URL路径,而且获取JS自己本身的加载路径,比如获取:
<script src="https://www.wdzzz.com/Style/js/jquery.min.js" type="text/javascript"></script>
中的
https://www.wdzzz.com/Style/js/jquery.min.js
代码如下
在JavaScript中,如果你想获取当前JavaScript文件的路径,你可以使用document.currentScript属性(如果你在HTML中以<script>标签引入JS),然后获取其src属性。以下是一个示例代码:
// 获取当前运行的 JavaScript 脚本标签 var script = document.currentScript; // 获取脚本的 src 属性,即当前脚本的路径 var scriptPath = script.src; console.log(scriptPath);
请注意,document.currentScript在一些老旧的浏览器中可能不支持,因此使用时需要考虑兼容性问题。
document.currentScript目前浏览器都兼容,只有特别老的浏览器不兼容,如果你还要考虑很老的浏览器兼容性,那可以使用下面这段代码。
function getCurrentScriptPath() { // 获取当前正在执行的script标签 var script = document.currentScript; // 如果不支持document.currentScript,则尝试通过调用栈获取 if (!script) { try { throw new Error(); } catch (e) { // 获取调用栈,并尝试从中获取script标签 var stack; if (e.stack) { stack = e.stack.split('\n').pop(); // 获取最后一行 } else if (window.opera) { stack = e.backtrace.split('\n').pop(); // 对于opera } if (stack) { var matches = stack.match(/((http|https|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|])/i); var src = (matches && matches[1]) || ''; if (src) { return src; } } } } // 返回script标签的src属性值 return script && script.src || ''; } var scriptPath = getCurrentScriptPath(); console.log(scriptPath);
这种方法可以在需要使用JS传参的时候使用,比如:
<script src="https://www.wdzzz.com/Style/js/jquery.min.js?wdzzz=wdzzz" type="text/javascript"></script>
然后在js获取自己路径,最后获取wdzzz的参数。