在 javascript 中替换 URL 中的两个元素
Replacing two elements in a URL in javascript
有点像javascript新手,所以不确定这个问题是容易还是不可能。
我正在一个具有不同测试环境的站点上工作,并制作了一个 greasemonkey 脚本来制作一组按钮以从一个切换到另一个:
if (/^(.*?)'www.mysite.com(.*)$/.test(document.location.href)) {
document.location.href = RegExp.$1+"iww1.mysite.com"+RegExp.$2
}
这一直在工作,除了某些 URL 具有搜索字符串 ID 也需要更改为不同的数字。
&storeId=15162
我觉得我已经用尽了我有限的知识,通过在 {} 中添加另一个 if 函数来添加各种替换函数,所有这些都无济于事。
如果这是有道理的,任何人都可以提供帮助,将不胜感激。
干杯
您的第一个问题是location
对象是神奇的:分配给它或其任何属性会导致浏览器导航到分配的 URL。 由于这通常会停止您的脚本,因此您不能执行两次。 相反,您应该将中间 URL 存储在其他变量中,并且仅在准备好移动到新页面后才将其重新分配给location.href
。
没有指定应该如何计算新的"搜索字符串ID",所以我只是假设您有一些函数,例如 getNewStoreID()
,当您给它旧 ID 时,这将返回新 ID。 给定这样的函数,此代码应该这样做:
var siteRegExp = /www'.mysite'.com/;
var paramRegExp = /([?&]storeId)=('d+)/;
if ( siteRegExp.test( location.href ) ) {
var href = location.href.replace( siteRegExp, "iww1.mysite.com" );
var match = paramRegExp.exec( href );
if ( match ) {
href = href.replace( paramRegExp, "$1=" + getNewStoreID( match[2] ) );
}
location.href = href; // navigate to the new URL!
}
相关文章:
- 如何在jQuery中包装两个元素的组
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- 检查来自不同数组的两个元素的一个属性是否相等
- javascript函数包含两个元素和web音频api
- 如何将日期和时间拆分为两个元素
- 检查最后两个元素
- 在两个元素的 onrender 事件之后执行函数
- 在照片库中的两个元素之间切换样式会发生变化
- 区分html代码中的两个元素
- 如何使用jQuery在两个元素之间切换类
- 如何使菜单容器在悬停两个元素以外的所有元素时隐藏
- 单击页面上的任意位置时隐藏两个元素
- Jquery两个元素,切换焦点/点击..有效但滞后
- 需要在ajax上传递两个元素的值
- 链接jQuery中的两个元素
- 根据两个元素的重叠宽度动态设置左填充
- JavaScript - 定位两个元素之间的字符串
- 在两个元素上切换引导“折叠”类
- 在 javascript 中替换 URL 中的两个元素
- 检测页面上两个元素是否具有相同的 ID