jQuery 插件使 API url 相对于包含的 js 文件而不是主机
jQuery plugin making a API url relative to included js file rather than host
您好,我目前正在开发一个 jQuery 插件,我可以在其中进行 API 调用。与其硬编码 API 的 URL,我希望它与插件
的 JS 文件的 URL 相关
假设我有以下设置
页面加载文件
http://mydomain1.com
在我加载的那个页面中
<script src="http://mydomain2.com/Scripts/myPlugin.min.js">
在该 JS 文件中,我将 API url 加载为
api_endpoint: "/myApi/api/v1",
我希望这会解决
http://mydomain2.com/myApi/api/v1
但它解析为
http://mydomain1.com/myApi/api/v1
我是否可以在 Javascript 中设置相对于加载脚本的 JS 文件而不是页面本身的域名?
根据我对您的问题的理解,您需要外部文件的 url 作为基础 URL。所以你可以使用下面的代码来访问它:
- 捕获了文档的所有脚本文件
- 定义索引以获取脚本文件并优化 url
中的任何查询字符串
- 现在使用 split 和 slice 删除最后一个目录名称(文件夹名称)并加入以完成 url
...
var scriptTags = document.getElementsByTagName('script');
var filterPath = scriptTags[0].src.split('?')[0]; // Hopping your script is on first place of dom and removing any ?query
var scriptFilePathUrl = filterPath.split('/').slice(0, -1).join('/');
alert(scriptFilePathUrl);
您好,我目前正在开发一个 jQuery 插件,我可以在其中进行 API 调用。与其硬编码 API 的 URL,我希望它与插件
的 JS 文件的 URL 相关假设我有以下设置
页面加载文件
http://mydomain1.com
在我加载的那个页面中
<script src="http://mydomain2.com/Scripts/myPlugin.min.js">
在该 JS 文件中,我将 API url 加载为
api_endpoint: "/myApi/api/v1",
我希望这会解决
http://mydomain2.com/myApi/api/v1
但它解析为
http://mydomain1.com/myApi/api/v1
我是否可以在 Javascript 中设置相对于加载脚本的 JS 文件而不是页面本身的域名?
根据我对您的问题的理解,您需要外部文件的 url 作为基础 URL。所以你可以使用下面的代码来访问它:
- 捕获了文档的所有脚本文件
- 定义索引以获取脚本文件并优化 url 中的任何查询字符串
- 现在使用 split 和 slice 删除最后一个目录名称(文件夹名称)并加入以完成 url
...
var scriptTags = document.getElementsByTagName('script');
var filterPath = scriptTags[0].src.split('?')[0]; // Hopping your script is on first place of dom and removing any ?query
var scriptFilePathUrl = filterPath.split('/').slice(0, -1).join('/');
alert(scriptFilePathUrl);