Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确定jQuery插件的相对位置_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 确定jQuery插件的相对位置

Javascript 确定jQuery插件的相对位置,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在开发一个jQuery插件,它由一个主js文件组成,可以加载其他几个js文件。我希望能够将所有文件放入“myPlugin”文件夹,并让主js文件找到其他脚本,而不管导入主文件的页面的位置如何 location.pathname将获取加载插件的页面路径,但如何告诉插件加载与其自身位置相关的内容 在下面的示例中,我希望myPlugin.js查找required1.js它是从pageA还是pageB加载的: pageA.html /../pageB.html myPlugin/ -myPlu

我正在开发一个jQuery插件,它由一个主js文件组成,可以加载其他几个js文件。我希望能够将所有文件放入“myPlugin”文件夹,并让主js文件找到其他脚本,而不管导入主文件的页面的位置如何

location.pathname
将获取加载插件的页面路径,但如何告诉插件加载与其自身位置相关的内容

在下面的示例中,我希望
myPlugin.js
查找
required1.js
它是从
pageA
还是
pageB
加载的:

pageA.html
/../pageB.html

myPlugin/
  -myPlugin.js (How does `myPlugin.js` find `required1.js`?)
  -required1.js
  -required2.js

谢谢…

我能想到的唯一一件事就是在包含页面的DOM中找到对myPlugin.js的引用:

$('script[src$="myPlugin.js"]').attr("src").replace(/myPlugin\.js$/, 'required1.js')

不过,这是一个有漏洞的问题,而且容易出错。我只会在绝对需要零配置解决方案的情况下使用它。否则,我会让用户配置插件,让它知道在哪里可以找到其他文件。

我唯一能想到的就是在包含页面的DOM中找到对myPlugin.js的引用:

$('script[src$="myPlugin.js"]').attr("src").replace(/myPlugin\.js$/, 'required1.js')

不过,这是一个有漏洞的问题,而且容易出错。我只会在绝对需要零配置解决方案的情况下使用它。否则,我只会让用户配置插件,以便它知道在哪里可以找到其他文件。

如果使用绝对路径而不是相对路径,这将非常简单。@Henrik-没有办法提前知道插件将安装在哪里的绝对位置。问得好。你也应该研究像这样的脚本加载程序,为你做所有艰苦的工作。如果你使用绝对路径而不是相对路径,那就简单多了。@Henrik-没有办法提前知道插件安装的绝对位置。问得好。您还应该研究这样的脚本加载程序,为您完成所有艰苦的工作。这应该适用于这种情况。一个更通用的解决方案是(在正常情况下,它将指向当前正在执行的脚本)。一个更通用的解决方案是(在正常情况下,它将指向当前正在执行的脚本)。