高分悬赏一个网页判断后替换某些字符并跳转方法,PHP或JS或其他可在网页执行的方法 100
比如:1234.ccc/abc/123/?from=1234&appid=5678这段链接,当用户点击链接时进行判断,如果链接中不包含1234.ccc则执行原链接不进行替...
比如:1234.ccc/abc/123/?from=1234&appid=5678这段链接,当用户点击链接时进行判断,如果链接中不包含1234.ccc则执行原链接不进行替换跳转,如果包含1234.ccc则替换from=到&之间的这段字符,并跳转到新链接,如替换字符为xxxx,则新链接为1234.ccc/abc/123/?from=xxxx&appid=5678
,要求尽可能的详细讲述代码过程,保证可以在网页中运行的步骤,要够详细哦。 展开
,要求尽可能的详细讲述代码过程,保证可以在网页中运行的步骤,要够详细哦。 展开
3个回答
展开全部
<html>
<head>
<script type="text/javascript">
//文档加载完毕后执行
window.onload = function(){
//找到所有a标签
var as = document.getElementsByTagName('a');
//需要转向的a标签的点击事件函数
var red = function(evt){
//取消a标签点击的默认事件,这里一般指点击一个a标签后浏览器执行的动作,即跳转
evt.preventDefault();
//停止事件传播,即停止事件冒泡或捕获,这个语句可有可无
evt.stopPropagation();
//实现转向跳转,采用正则表达式更换目标路径
location.href = this.href.replace(/(\?from=)([^&]+)/g, function(a, b, c){return b + c.replace(/./g, 'x');});
};
//遍历所有a标签
for(var i = 0, il = as.length; i < il; i++) {
//如果a标签的href属性符合转向规则,添加它的点击事件为red
if(/(^|\/)1234\.ccc/.test(as[i].href)) {
as[i].onclick = red;
}
}
};
</script>
</head>
<body>
<a href="1234.ccc/abc/123/?from=1234&appid=5678">1234.ccc/abc/123/?from=1234&appid=5678</a>
</body>
</html>
展开全部
如果1234ccc是你的网站,可以修改网站的htaccess文件,对网址编写重定向规则,
或者在你的页面上加上JS代码,实现跳转。
例如:
var t=location.href;
if(t.indexOf("1234.ccc/abc/123/?from=")>0){
location.href=t.replace(/from=\d+/,'frome=xxxx');
}
更多追问追答
追问
请问JS完整代码怎么写,放在哪个位置,头文件?还是底部文件中?
追答
建议放在head里面,这样不需要等待页面加载完毕,即可实现跳转。
另外,在head里面,还可以使用meta,来实现定时跳转到新地址
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如下是Js的操作方法,你看看是否满足你的需求!稍后给个PHP的demo与你。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<script type="text/javascript" src="jquery.js"></script>
<body>
<div>
I'm a link (include 1234.ccc):http://www.1234.ccc/abc/123/?from=1234&appid=5678
<div style="margin-top:10px">
<input type="button" value="包含1234.ccc [ 点击后替换地址 ] 替换字符为:baidu" onclick="demo('http://www.1234.ccc/abc/123/?from=123456&appid=5678');" />
</div>
</div>
<div style="margin-top:100px">
I'm a link (Does not contain 1234.ccc):http://www.zhidao.baidu.com/abc/123/?from=1234&appid=5678
<div style="margin-top:10px">
<input type="button" value="不包含1234.ccc [ 点击后不替换地址 ]" onclick="demo('http://www.51makeit.com/abc/123/?from=51makeit&appid=5678');" />
</div>
</div>
</body>
<script type="text/javascript">
function demo(url){
if(url.indexOf('1234.ccc')){
// 匹配
/from\=(\d*)&/.test(url);
var sub_str = RegExp.$1;
// 替换
var new_url = url.replace(sub_str, 'baiduzhidao');
new_url = '当前地址包含(1234.ccc),from到&之间的内容被替换成:baiduzhidao。地址如下:'+new_url;
}else{
var new_url = '当前地址不包含(1234.ccc),from到&之间的内容不做替换。地址如下:'+url;
}
alert(new_url);
}
</script>
</html>
我上传了附件,你可以直接下载下来测试
追问
感谢热心帮忙,后面内容有些不太懂,JS里可以加中文么?还有上面一段内容和下面的好像作用是相同的,但又有些问题,可能我问题没描述清楚,链接当中会改变的是from=后到&之间的字符还有APPID=后面的字符也会改变,APPID=后面的字符改变是不用去过问的,并不是固定的字符,请帮忙再看一下,谢谢
追答
根据你的需求,我重新修改了一下代码,你看看是否符合你的需求,我上传了附件!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询