以下代码用于获取网址参数。
<script type="text/javascript">
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
</script>
<script type="text/javascript">
var url = window.location.protocol + "//" + window.location.hostname;
</script>
可以从另一页上的链接访问包含上述代码的页面。在该链接中,我传递了新闻项目ID和标题。 当具有上述代码的页面加载URL中的标题时,%20代替所有空格。 我已经阅读了这篇文章,发现我需要使用decodeURI或decodeURIComponent。我已尝试在多个地方执行此操作并在浏览器中提醒结果,但我似乎无法从URL中的标题中删除%20,因此它显而易见的是我的不要在正确的地方做。
这是我的结果......
http://PAGE URL HERE/NewsArchive.aspx?Story=New%20site%20launched&ID=17
我相信我需要包含/%20 / g的正则表达式,&#34; - &#34;在替换parts变量时,我接下来不了解正则表达式。
有人能让我知道我需要做什么,因为我画了一个空白。我已经看过很多类似的文章,但没有什么能解释我的知识水平低。
我也在SharePoint Stack Exchange上发布,因为它与SharePoint一起使用,但我没有任何对我有用的答案。
任何帮助表示感谢。
答案 0 :(得分:0)
我不确定我是否理解这个问题,但您似乎只想检索参数?如果您在页面上打开包含参数的开发人员控制台(chrome中的f12),则可以键入swp
并查看该对象的所有属性。如果您键入window.location
,则可以看到完整的URI。一种简单的方法是使用window.location.href
。
.split
将为您提供window.location.href.split('?')[1]
字符后的所有内容。你可以?
来获得正常的字符串。
请记住,split返回的数组是零索引。
编辑以回应评论:
您正在寻找的技术是decodeUri(window.location.href.split('?')[1])
。更多细节here。我强烈建议彻底浏览。
history.replaceState