高分悬赏一个网页判断后替换某些字符并跳转方法,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
,要求尽可能的详细讲述代码过程,保证可以在网页中运行的步骤,要够详细哦。
展开
 我来答
likeajin
2014-12-18 · 超过14用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:36.5万
展开全部
<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>
zzllrr小乐
高粉答主

2014-12-18 · 小乐图客,小乐数学,小乐阅读等软件作者
zzllrr小乐
采纳数:20147 获赞数:78778

向TA提问 私信TA
展开全部

如果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,来实现定时跳转到新地址
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
相大之0o358
2014-12-18 · TA获得超过210个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:121万
展开全部

如下是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=后面的字符改变是不用去过问的,并不是固定的字符,请帮忙再看一下,谢谢
追答

根据你的需求,我重新修改了一下代码,你看看是否符合你的需求,我上传了附件!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式