获取脚本路径

2024-04-16

在 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>上面的tag是通常的方法,是的。

然而,你通常不需要太努力地搜索:当你在脚本主体中时 — 在包含时间运行 — 你很清楚哪个<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>)。然而,目前这种方法很少被使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取脚本路径 的相关文章

随机推荐

  • 资源调度问题

    我正在开发一个摩托车租赁网站 我遇到的问题是如何高效地解决为客人分配摩托车的问题 我知道如何以 愚蠢 的方式做到这一点 但我想知道是否有一种经典算法可以解决此类问题 这与将客人分配到酒店房间是同样的问题 在最后一个示例中 目标是通过不因调度
  • UIActionSheet 着色

    有人知道如何在 uikit 中为 uiactionsheet 着色吗 是的 因为它是一个 UIView 如 kmit 所描述的 您可以使用以下命令 addSubview 因此您可以添加自己的背景并使用 sendSubviewToBack 将
  • 在 JavaScript 中将字符串数组拆分为浮点数数组

    我正在尝试拆分一个称为 顶点 的字符串数组 并将其存储为浮点数组 目前字符串数组包含三个元素 0 1 0 1 1 0 1 1 0 我需要的是一个包含所有这些数字作为单独元素的浮点数组 0 1 0 1 1 0 1 1 0 我使用 split
  • 如何使用键盘快捷键打开弹出窗口? [复制]

    这个问题在这里已经有答案了 可能的重复 jQuery 的键盘快捷键 https stackoverflow com questions 593602 keyboard shortcuts with jquery 我想使用快捷键显示弹出窗口
  • 如何将自定义目标文件与 Haskell 库链接?

    我创建了一个 Haskell 包 它对 CUDA 代码中定义的函数进行 FFI 调用 我想在包构建期间将 cu 文件编译为对象 o 文件 并强制链接器将其链接 到目前为止 我尝试使用一种发现的技术这个问题 https stackoverfl
  • 使用plotly r 的多折线图

    我有一个数据框 我试图使用plotly作为多折线图来绘制它 下面是数据框的样子 Month considered pct x pct y pct
  • 如何阻止 VSCode 自动格式化删除括号内的空格?

    例如 当我写 foo bar 它将被格式化为 foo bar 我怎样才能让它保留2个空格 Edit 这是一个不同的问题如何更改 Visual Studio Code 中的缩进 https stackoverflow com question
  • 为什么在比较时将常量放在变量之前?

    我注意到我们的一些代码中存在以下语法有一段时间了 if NULL var or if 0 var 和类似的事情 有人可以解释一下为什么写这个的人选择这个符号而不是常见的符号var 0 way 这是风格问题 还是以某种方式影响性能 这是一种避
  • 为什么我在此语音识别代码中缺少 an4-1-1.match 文件?

    我在语音识别的解码部分遇到问题 我按照步骤操作here http www speech cs cmu edu sphinx tutorial html 当我输入 perl scripts pl decode slave pl 我收到这些错误
  • AWS从EBS切换到EFS

    我正在考虑从 AWS Elastic Block Storage 切换到 AWS Elastic Filesystem 主要是为了易于扩展 而且可共享存储似乎也不错 目前我有一个 debian EC2 实例和一个 EBS 卷 将数据从 EB
  • Python 中丢弃图像时出现内存泄漏

    我目前正在用 Python 编写一个简单的棋盘游戏 我刚刚意识到当图像重新加载时 垃圾收集不会从内存中清除丢弃的位图数据 仅当游戏启动或加载或分辨率更改时才会发生这种情况 但它会增加消耗的内存 所以我不能让这个问题得到解决 重新加载图像时
  • 什么是IDL?

    IDL 是什么意思 我用谷歌搜索了一下 发现它代表接口定义语言 用于组件的接口定义 但是 在实践中 IDL 的目的是什么 微软使用它吗 接口定义语言 IDL 用于在远程过程调用 RPC 中建立客户端和服务器之间的通信 它有很多变体 例如 S
  • batik-rasterizer.jar - 将 svg 转换为 png

    我尝试使用以下命令在我的 Linux 服务器中设置导出服务器 以将图形下载为图像高图表 http www highcharts com docs export module setting up the server command jav
  • 单击p-dialog关闭(X)按钮时如何调用角度函数?

    单击p dialog关闭 X 按钮时如何调用角度函数 我已经搜索并尝试过这个 onHide cancel 但这不起作用 请分享您的解决方案 我知道我们可以使用close cancel按钮隐藏弹出窗口 但在我的场景中 我想在单击 X 按钮单击
  • 在 Swift 中,如何将现有的二进制文件读入数组?

    作为我的项目的一部分 我有一个二进制数据文件 其中包含大量 32 位整数 我的一个类在初始化时读入该文件 在我的 C 库中 我使用以下初始化程序读入它 Evaluator Evaluator m HandNumbers resize 324
  • 如何在向量列表上应用索引向量?

    我想将一个长索引向量 50 多个非连续整数 应用于一长向量列表 包含 100 多个名称的 50 多个字符向量 以便检索特定值 作为列表 向量或数据帧 一个简化的例子如下 gt my list lt list c a b c c d e f
  • 一步一步 YouTrack“在构建中修复”填充 TeamCity 集成

    我正在使用 TeamCity Professional 8 1 和 YouTrack 5 0 6 我已经成功地用两步工作流程填充了 YouTrack 中的 Fixed in build 字段 我在用 issue id 已修复我的 Mercu
  • R闪亮的csv或excel上传选项

    我需要为用户提供上传 csv txt 或 xlsx 格式文件的选项 我正在使用 xlsx 包 并在我的 UI 上提供了一个单选按钮 例如 ui lt dashboardPage dashboardHeader title SKU Healt
  • 如何在pytorch中查看DataLoader中的数据

    我在 Github 上的示例中看到类似以下内容 如何查看该数据的类型 形状和其他属性 train data MyDataset int 1e3 length 50 train iterator DataLoader train data b
  • 获取脚本路径

    在 CSS 中 任何图像路径都是相对于 CSS 文件位置的 f ex 如果我将 CSS 文件放入 media css mystyles css并使用类似的东西 background url images myimage jpg 浏览器将在以