我试图在查询字符串中找到一个参数并处理两件事。
示例网址 - http://domainname.com?name=y&track=1&promo=true
更改包含特定字符串的网址的href网址本身,然后附加查询字符串。这些href以不同的方式存在,例如href标签,onclick inside image tag。
<a href="http://externaldomain.com/?a=88">link</a>, <img src="a.jpg" onclick = document.location.href="http://externaldomain.com/?a=88" />
到目前为止代码做的第一件事
var querystring = window.location.search.substring(0);
var newurl = "http://changetothisdomain.com/"; //for second criteria
jQuery(document).ready(function() {
jQuery('a[href]').attr('href', function(index, value) {
if ((querystring.indexOf("promo=true") > 0) && (value.indexOf('#') != 0)) {
return value + querystring;
}
});
});
我有这个value.indexOf('#')!= 0所以带#的网址没有改变,因为它是用于jquery标签的。添加参数会影响这些。对于第二件事,我想检查是否在查询字符串中有promo = true,然后还检查href是否有“a = 88”然后将href更改为“newurl”并附加查询字符串。
谢谢!
答案 0 :(得分:0)
看看这个 - 这不是微不足道的
var querystring = "?blabla=bla&promo=true&bla=bla"; // window.location.search;
var newurl = "http://changetothisdomain.com/"; //for second criteria
function changeURL(value) {
if (value.indexOf('#') == 0) return value;
return (value.indexOf("a=88") == -1 ? value : newurl) + querystring;
}
function changeString(value) {
if (value.indexOf('#') == 0) return value;
var match = value.match(/href=([^"]*)/);
var url = (match.length > 0) ? match[1] : "";
var replace = url.indexOf("a=88") == -1 ? url : newurl;
var qString = (replace.indexOf("?") !=-1)?querystring:"&"+querystring.substring(1);
if (url.indexOf("'") != -1) {
replace = replace.replace(/'/g, "");
replace = "'" + replace + qString + "'";
} else if (url.indexOf('"') != -1) {
replace = replace.replace(/"/g, "");
replace = '"' + replace + qString + '"';
}
return value.replace(url, replace);
}
$(function() {
if (querystring.indexOf("promo=true") != -1) {
$('a[href]').attr('href', function(index, value) {
return changeURL(value);
});
$('img').attr('onclick', function(index, value) {
return changeString(value);
});
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<a href="http://externaldomain.com/?href=true&a=88">link</a>,
<img src="a.jpg" onclick="document.location.href='http://externaldomain.com/?img=true&a=88'" />
<a href="http://externaldomain.com/?href=true&a=89">link</a>,
<img src="a.jpg" onclick="document.location.href='http://externaldomain.com/?img=true&a=88'" />
&#13;