javascript - 如何获取当前正在执行的javascript代码的文件路径

标签 javascript include absolute-path src

我正在尝试做一些类似 C #include "filename.c" 或 PHP include(dirname(__FILE__)."filename.php") 的事情但是在javascript中。我知道如果我可以获得从中加载 js 文件的 URL(例如,标签的 src 属性中给出的 URL),我就可以做到这一点。 javascript 有什么办法知道吗?

或者,有什么好的方法可以从同一个域动态加载 javascript(无需具体了解域)?例如,假设我们有两个相同的服务器(QA 和生产),但它们显然具有不同的 URL 域。有没有一种方法可以执行类似 include("myLib.js"); 的操作,其中 myLib.js 将从加载文件的域加载?

抱歉,如果这句话有点令人困惑。

最佳答案

在脚本中:

var scripts = document.getElementsByTagName("script"),
    src = scripts[scripts.length-1].src;

这是有效的,因为浏览器按顺序加载和执行脚本,所以当您的脚本正在执行时,包含它的文档肯定会将您的脚本元素作为页面上的最后一个元素。这段代码当然必须是脚本的“全局”代码,因此请将 src 保存在您以后可以使用的地方。通过将其包装在以下内容中来避免泄漏全局变量:

(function() { ... })();

关于javascript - 如何获取当前正在执行的javascript代码的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255689/

相关文章:

javascript - 从此对象中选择特定属性值时遇到问题

javascript - 检查用户是否喜欢 facebook 页面

javascript - 如何访问Polymer元素模板内js文件中定义的函数?

php - 包含包含文件的 php 文件

java - 我无法从 Servlet (Java EE) 获取真实路径

cocoa-touch - NSDirectoryEnumerator : are the returned path relative?

javascript - ASP MVC 页面加载中的 Highchart 无法正常工作

c - 未定义对 'function' 的引用,但包含 header

c++ - Eclipse 同名文件包含路径 c c++

来自自定义位置的 Symfony 渲染模板