js 如何在网页加载之前替换掉源码内的指定链接

比如百度加载之前会读以*.bdimg.com开头的一些资源文件我现在想把只要是以baidu.com、bdimg.com等结尾的链接全都替换成localhost这是替换的代... 比如 百度
加载之前会读以 *.bdimg.com 开头的一些资源文件
我现在想把只要是以 baidu.com 、bdimg.com 等结尾的链接全都替换成localhost

这是替换的代码 但是该如何获取这些链接呢
var src = ????;

var regexp = "https?:\/\/[a-zA-Z0-9_\-\.]+\.?b(aidu|dimg|dstatic)\.com";
var replacement = "http:\/\/localhost";

src = src.replace(regexp, replacement);
然后再怎么写?
展开
 我来答
匿名用户
2014-06-03
展开全部

原理:1.想js最先加载就把这段话放在header style标签之前。

           2.遍历所有超链接

           3.批量替换


var regexp = "https?:\/\/[a-zA-Z0-9_\-\.]+\.?b(aidu|dimg|dstatic)\.com";
var replacement = "http:\/\/localhost";
//jquery版
$("a").each(function(index){
var u=$(this).attr("href");
$(this).attr("href",u.replace(regexp,replacement));
});
//原生js
for(var i = 0; i < document.links.length; i++) {
var u=document.links[i].href;
document.links[i].href=u.replace(regexp,replacement);
}

要用jQuery记得加载jQuery库。

追问
谢谢你的回答 不过我不能控制那个页面 所以这个只能自己写代码的时候用
eadio
2014-06-03 · TA获得超过1610个赞
知道小有建树答主
回答量:962
采纳率:80%
帮助的人:1018万
展开全部
直接location.href=src;不是???就直接跳转了呀???
更多追问追答
追问
不是location.href 我只是想替换网页内的源码 并不是跳转到指定链接
追答
那你的src是不清楚吗??你源码里面哪些地方是放源码的给个标识,在js里面取出来不行吗???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
似怜杉33
2014-06-03 · TA获得超过141个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:123万
展开全部
把整个页面当成字符串贝
更多追问追答
追问
能详细说下吗
追答
js是在客户端加载的,所以没有加载前替换的,
如果想加载前替换只能用后端的语言.
如果一定用JS, 可以有这么几种办法假装下,,
办法一: AJAX,,将取道得页面返回整个字符串,进行解析,,也可以返回DOM对象进行解析....
办法二: 如果加载的页面你能控制的话, 可以先将body 隐藏,,,然后把body里的内容当成整个字符串进行解析....解析完后再显示...

字符串的解析就是上面你自己写的阿...
var src = document.getElementsByTagName("body")[0].innerHTML;
当然必须加载万body, 才能取道值.....
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式