我很确定答案是否定的,但我想我还是会问.
如果我的站点引用了一个名为"whatever.js"的脚本,是否可以从该脚本中获取"whatever.js"?喜欢:
var scriptName = ???
if (typeof jQuery !== "function") {
throw new Error(
"jQuery's script needs to be loaded before " +
scriptName + ". Check the <script> tag order.");
}
Run Code Online (Sandbox Code Playgroud)
可能比依赖检查更值得麻烦,但是到底是怎么回事.
如果我有一个站点,example.com和该站点上的页面引用了subdomain.example.com/serveAd.js上的Javascript - 是否有一种方法可以在serveAd.js中知道自己的URL,或者来自哪个下载了?
(JS当然可以知道调用它的页面.我想知道JS是否了解它自己的来源.)
如何使用jQuery在javascript中获取当前脚本的路径
例如,我有,site.com/js/script.js并在此脚本中有一个代码:
$(document).ready(function() {
alert( ... this code ... );
}
Run Code Online (Sandbox Code Playgroud)
它应该返回带有"/js/script.js"消息的警告框.这个函数应该像__FILE__php中的魔术常量一样工作
那么,为什么我需要这个呢?
我想动态设置背景图片:
$("somediv").css("background-image", "url(" + $SCRIPT_PATH + "/images/img.png)");
Run Code Online (Sandbox Code Playgroud)
和images目录是文件/js附近的script.js目录
和js文件夹的名称可以动态设置,因此脚本和图像可以在/myprogect/javascript-files目录中
注意:我终于在以下位置找到了一个完全重复的问题和答案:获取脚本路径
我有一个背景图像定义了相对于我的CSS文件的路径.
.my-image-class {
background-image: url("../images/my_bg_image.png");
}
Run Code Online (Sandbox Code Playgroud)
我想在JavaScript中更改此路径,以便它现在指向../images/my_updated_bg_image.png.但是,简单地更改JavaScript中的样式声明会更改从CSS位置到HTML位置的相对路径的含义.
有没有办法从相对CSS URL中提取绝对URL?
如果没有,有没有办法提取当前运行的JavaScript函数的源的绝对URL?这会给我相同的信息,因为我的JS文件也与图像文件有关.
其他方案?
这是一个类似于javascript的问题- 如何使用相对于url路径的图像文件?但是类交换技巧表明这对我不起作用,因为我实际上有一个这些背景图像的变量列表.
编辑:背景信息.Web应用程序(基于Django)完全独立于静态js,image和css文件提供HTML内容.静态内容在
static/
js/
css/
images/
Run Code Online (Sandbox Code Playgroud)
文件结构.所以我知道这些文件之间的相对关系.但是,HTML内容和静态内容的绝对URL可能会发生变化.所以我不希望将HTML内容的硬编码URL混合到我的js文件中,如果我可以避免它.我从第三方获得了Django模板,所以我也想避免编辑它.
我需要
在我的网站http://jsbookmarklets.com/中为bookmarklet动态加载跨域JavaScript
文件
解决方案应满足:
我想获取当前正在执行的JavaScript代码的文件路径,以便动态加载更多资源(更多CSS文件和JS文件,如自定义代码和jQuery,jQuery UI和Ext JS库),这些文件存储在与JavaScript相同/相对的文件夹中小书签.
以下方法不适合我的问题:
var scripts = document.getElementsByTagName("script");
var src = scripts[scripts.length-1].src;
alert("THIS IS: "+src);
Run Code Online (Sandbox Code Playgroud)
相关问题不符合我的问题:
正如我在标题中已经提到的,我正在寻找一个JS函数来获得与我使用这个PHP代码相同的结果:
dirname(dirname(__FILE__))
Run Code Online (Sandbox Code Playgroud)
提前致谢!
javascript ×6
html ×2
jquery ×2
bookmarklet ×1
cross-domain ×1
css ×1
dirname ×1
path ×1
php ×1