Javascript 如何从脚本本身内部的自加载脚本获取参数

Javascript 如何从脚本本身内部的自加载脚本获取参数,javascript,Javascript,你好,我有这个例子 <script src="https://example.com/init.js?v=1589383111"></script> 查看URL和URLSearchParams- 常数u= 新URL('https://example.com/init.js?v=1589383111') 常数s= 新的URLSearchParams(u.search) console.log(s.get(“v”)) //158933111查看URL和URLSearchP

你好,我有这个例子

<script src="https://example.com/init.js?v=1589383111"></script>

查看
URL
URLSearchParams
-

常数u=
新URL('https://example.com/init.js?v=1589383111')
常数s=
新的URLSearchParams(u.search)
console.log(s.get(“v”))

//158933111
查看
URL
URLSearchParams
-

常数u=
新URL('https://example.com/init.js?v=1589383111')
常数s=
新的URLSearchParams(u.search)
console.log(s.get(“v”))

//158933111
您可以使用
document.currentScript
访问当前脚本标记。然后,只需提取
src
属性,并将其解析为URL即可


const self=document.currentScript;
const v=新的URLSearchParams(
新URL(self.getAttribute(“U src”))。搜索,
).get('v');
控制台日志(v);

您可以使用
document.currentScript
访问当前脚本标记。然后,只需提取
src
属性,并将其解析为URL即可


const self=document.currentScript;
const v=新的URLSearchParams(
新URL(self.getAttribute(“U src”))。搜索,
).get('v');
控制台日志(v);

> p>我会考虑把数据放在后端的数据属性,以及ID。然后可以从DOM:

访问它们。
<script src="https://example.com/init.js?v=1589383111" 
    data-version="1589383111"
    id="importantScript"></script>

我会考虑把这个版本放在后端的数据属性中,以及ID。然后可以从DOM:

访问它们。
<script src="https://example.com/init.js?v=1589383111" 
    data-version="1589383111"
    id="importantScript"></script>

从脚本中:

const curScriptElement = document.currentScript;
const queryParams = new URLSearchParams(new URL(curScriptElement.src).search);
const version = queryParams.get('v');
console.log('version is', version);
请参见演示:

在这种情况下,请注意浏览器支持(特别是):


在脚本中:

const curScriptElement = document.currentScript;
const queryParams = new URLSearchParams(new URL(curScriptElement.src).search);
const version = queryParams.get('v');
console.log('version is', version);
请参见演示:

在这种情况下,请注意浏览器支持(特别是):


您能提供一些关于您的问题的详细信息吗?事实上,我不确定你到底想实现什么以及你是如何尝试实现的。我使用一个启用CSP的资产缩小器,它不允许内联脚本,我想将一个已经由PHP配置的变量传递给缩小的脚本。但是我不想启用内联脚本复制:您能提供一些关于您的问题的详细信息吗?事实上,我不确定你到底想实现什么以及你是如何尝试实现的。我使用一个启用CSP的资产缩小器,它不允许内联脚本,我想将一个已经由PHP配置的变量传递给缩小的脚本。但我不想启用内联scriptDuplicate:该URL值如何从文件中的init函数中可用?@isherwood if
https://example.com/init.js
是应用程序的主页…我不明白。你把它当作一根神奇的弦传递。那是从哪里来的?这是一个动态值。isherwood,我把
init.js
想象成一个单页应用程序或其他东西的入口点。在我看来,问题更多的是从字符串中获取值,而不是如何获取实际的url。有多种方法可以做到这一点……如何从文件中的init函数中获得URL值?@isherwood if
https://example.com/init.js
是应用程序的主页…我不明白。你把它当作一根神奇的弦传递。那是从哪里来的?这是一个动态值。isherwood,我把
init.js
想象成一个单页应用程序或其他东西的入口点。在我看来,问题更多的是从字符串中获取值,而不是如何获取实际的url。有多种方法可以做到这一点…很好,我对问题的理解不同,但这更可能是OP所问的问题…很好,我对问题的理解不同,但这更可能是OP所问的问题。。。