如何获取参数名称? [复制]
Posted
技术标签:
【中文标题】如何获取参数名称? [复制]【英文标题】:How to get parameter name? [duplicate] 【发布时间】:2018-01-29 03:12:45 【问题描述】:我有一个类似的网址:
//my-url-adresses.com/web/Assets/js/javascripts?v=5.2&marker=2017-05/logo_30dKmOHPNLq8CfiOYfqhmarkerv2.png&cdn=//cdn.mywebsite.com/files/
我想得到这部分:(在 cdn= 之后):
//cdn.mywebsite.com/files/
我在下面提供了我的代码。请纠正我错的地方。提前致谢。
var scripts = document.getElementsByTagName('script');
var index = scripts.length - 1;
var myScript = scripts[index];
var scripturl = myScript.src;
var cdnUrl = getParameterByName("cdn", scripturl);
var markerUrl = getParameterByName("marker", scripturl);
function getParameterByName(name, url)
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
console.log(markerUrl);
<script id="scripts" src="//my-url-adresses.com/web/Assets/js/javascripts?v=5.2&amp;marker=2017-05/logo_30dKmOHPNLq8CfiOYfqhmarkerv2.png&amp;cdn=//cdn.mywebsite.com.com/files/" defer></script>
【问题讨论】:
getParameterByName
的代码在哪里
你找不到参数,你通过 indexof() 方法使用 find 方法,在***.com/questions/1789945/…查看这个@Avi Flax 答案
我正在寻找我的错误@Justinas
getParameterByName 函数怎么样?你会写吗?
现在我看到我的 getParameterFunction() 坏了,这就是为什么不工作谢谢大家
【参考方案1】:
我注意到您的代码无法使用 index 属性访问脚本 url。我还注意到您的脚本标签中有 id 。最好使用它,否则如果您在页面底部的页面中有一些带有某些功能的脚本标签,它会得到那些(因为您在页面中找到最后一个脚本标签)并且因为它没有有src
它不会获取结果。
这是使用getElementById()
的解决方案
var myScript = document.getElementById('scripts');
var scripturl = myScript.src;
var cdnUrl = getParameterByName("cdn", scripturl);
var markerUrl = getParameterByName("marker", scripturl);
function getParameterByName(name, url)
url = decodeURIComponent(url);
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
console.log(markerUrl);
<script id="scripts" src="//my-url-adresses.com/web/Assets/js/javascripts?v=5.2&amp;marker=2017-05/logo_30dKmOHPNLq8CfiOYfqhmarkerv2.png&amp;cdn=//cdn.anitur.com/web/" defer></script>
【讨论】:
好极了【参考方案2】:试试这个:
var myScript = document.getElementById('scripts');
var scripturl = myScript.src; // or window.location.href for current url
var captured = /cdn=([^&]+)/.exec(scripturl )[1];
var result = captured ? captured : 'myDefaultValue';
console.log(result);
【讨论】:
谢谢 Uphar 但它不适用于此脚本标签:<script id="scripts" src="//my-url-adresses.com/web/Assets/js/javascripts?v=5.2&amp;marker=2017-05/logo_30dKmOHPNLq8CfiOYfqhmarkerv2.png&amp;cdn=//cdn.anitur.com/web/" defer></script>
已编辑答案..以上是关于如何获取参数名称? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio Code 中自动获取参数名称?