gpt4 book ai didi

javascript - 获取脚本路径

转载 作者:IT王子 更新时间:2023-10-29 03:20:03 26 4
gpt4 key购买 nike

在 CSS 中,任何图像路径都是相对于 CSS 文件位置的。

f.ex 如果我将 CSS 文件放在 /media/css/mystyles.css 中并使用类似的东西

.background:url(../images/myimage.jpg);

浏览器将在 /media/images/myimage.jpg 中查找有意义的图像。

是否可以在 javascript 中做同样的事情?

F.ex 如果我包含 /media/js/myscript.js 并将此代码放在那里:

var img = new Image();
img.src = '../images/myimage.jpg';

找不到图像,因为浏览器使用 HTML 文件作为起点,而不是脚本位置。我希望能够使用脚本位置作为起点,就像 CSS 一样。 这可能吗?

最佳答案

为自己搜索 DOM <script>上面的标签是通常的方法,是的。

但是,您通常不需要太费力地搜索:当您在脚本主体中时⟩—⟩在包含时运行⟩—⟩您非常清楚哪个<script>你是元素:最后一个。其余的还不能解析。

var scripts= document.getElementsByTagName('script');
var path= scripts[scripts.length-1].src.split('?')[0]; // remove any ?query
var mydir= path.split('/').slice(0, -1).join('/')+'/'; // remove last filename part of path

function doSomething() {
img.src= mydir+'../images/myimage.jpeg';
}

如果您的脚本已与 <script defer> 链接,则这不成立(或者,在 HTML5 中,<script async>)。但是,目前很少使用。

关于javascript - 获取脚本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2161159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com