编码网址但继续工作

时间:2015-08-07 15:06:09

标签: javascript html

奇怪的是,如果没有文本helloworld.com在源中,<a href="http://www.helloworld.com">Link</a>是否可以工作?

很长一段时间,但我有打破helloworld的功能,因为它匹配它,我记得回到我的AOL时代,你可以&#34;编码&#34;一个网址,看起来完全不同的文字,但它仍然带你去那个网址?注意我不是指编码?或=等 - 但域名的实际文本......我完全想象过这个吗?

2 个答案:

答案 0 :(得分:0)

  

奇怪的是,如果没有文本helloworld.com在源中,<a href="http://www.helloworld.com">Link</a>是否可以工作?

到底是什么?如果您想完全阻止用户在点击链接之前弄清楚URL,那就不可能了。相反,如果你只是想阻止那些没有运行JavaScript的scider选择这个URL,那么这是完全可能的。

在这种情况下,我要做的是使用URL的编码版本向链接添加数据属性。

<a href="#" data-href-rot13="uggc://jjj.uryybjbeyq.pbz">Link</a>

然后在你的JavaScript中解码。开始时未经测试的jQuery示例:

$('a[data-href-rot13]').each(function (index, el) {
  $(this).attr('href', rot13($(this).attr('data-href-rot13')));
});

当然,您可能需要与rot13不同的算法。您可以使用AES和base-64编码输出以在标记中使用。如果您确实想要rot13,请参阅此帖子:https://stackoverflow.com/a/15747894/362536

答案 1 :(得分:0)

您可以对网址进行网址编码:

(这里仅仅是&#39; l&#39;字符)
std::vector

它不是加密,而是简单的编码。 Url不能使用其中的所有字符,因此可以使用%XX格式传递特殊字符,其中XX是字符的十六进制表示形式。

在使用之前,您的浏览器会对其进行解码。这个编码通常在params和path的url之后看到(即:url.com/this%20space),但它也可以在域名中找到。

您可以使用以下简短的javascript编码这样的网址:

&#13;
&#13;
<a href="http://www.he%6C%6Cowor%6Cd.com">Hello World !</a>
&#13;
&#13;
&#13;