0

问题是我想将网页中的所有 URL 更改为短 URL,(对于任何服务,最好使用已知的)我认为这可以通过网页标签中链接的简单 Javascript 文件来完成,是吗?正确的?我可以使用哪种服务来做到这一点?谢谢!

PS 这个想法是,当我将 URL 写入网页或出现 URL 时(因为页面是自己编写的),某些脚本或服务会将它们全部更改为短链接,因此真正的链接永远不会显示在网页中,如果有可能,我想阻止用户“看到”真正的链接,我的意思是,如果我可以使用一种服务,当缩小 URL 并且用户跟随它时,真正的链接永远不会出现在用户的地址栏中,但这是可选的...

我会等你的答复,非常感谢!:)

编辑 - 我想使用 anonym.to 之类的东西,但使用 shark 链接服务,请看:

如果您使用 anonym.to javascript 代码:

<script src="http://js.anonym.to/anonym/anonymize.js" type="text/javascript"></script>

<script type="text/javascript"><!--
protected_links = "";

auto_anonymize();
//--></script>

它将使用 anonym.to 链接更改网页的所有链接,我想做同样的事情,但使用一些已知的 URL 缩短服务,你能告诉我怎么做吗?谢谢!

4

2 回答 2

0

这取决于您是想以编程方式还是事先(由您创建然后加载到页面中)来执行此操作。我要做的是将谷歌 API 用于 goo.gl goo.gl。您可以通过 jquery 获取所有链接,然后遍历,然后使用 google API 交换到一个短 url。页面中的任何原生内容仍然可以在源代码中看到,但如果您将鼠标悬停或单击它,则不会。如果您通过 AJAX 调用加载内容,那么您可以在将链接写入页面之前对其进行编辑。

于 2011-01-24T06:01:23.423 回答
0

你会满足于改变隐藏链接的方式吗?隐藏链接似乎非常不可取(从主机和访问者的角度来看),但这可以做您想做的事情(并且仅在支持 JS 的浏览器中受支持):

var links = document.getElementsByTagName('a');
for (var l = 0; l < links.length; l++){
    links[l].rel = links[l].href;
    links[l].href = '#';

    if (links[l].addEventListener) {
        links[l].addEventListener("click",myClick,false);

    } else if (links[l].attachEvent) {
        links[l].attachEvent("onclick",myClick);
    } else {
        links[l].onclick = myClick;
    }
}
function myClick(e){
    window.location = this.rel;
    return false;
}

工作示例: http: //www.jsfiddle.net/bsU8n/

于 2011-01-24T06:12:11.723 回答