-2

以下脚本将我的会员扩展添加到我页面上的每个 url。例如,如果http://www.Google.com/在我的页面某处...将此脚本添加到页面将自动将 url 更改为http://adf.ly/xxxxxx/http://www.Google.com/- 这适用于页面上的每个 url...

如果页面上的 url 已经超链接,则此脚本非常有用,因为链接文本保持不变,但目标 url 现在有我的附属扩展。

我的问题是......我如何修改这个脚本以使其原始网址(非超链接)仍然可以显示为原始网址,但我的附属扩展名已添加到目的地?更好的说法是,我需要这个脚本来超链接页面上的所有原始 url。我需要它,以便如果我的http://www.Google.com页面上有原始 url,脚本会将目标更改为http://adf.ly/xxxxxx/http://www.Google.com/--但查看器仍然只能看到http://www.Google.com.

同样,这个脚本已经可以很好地处理超链接,因为它只影响 URL,而不是链接文本。我只需要它来隐藏/屏蔽/超链接所有原始 url,以便观众仍然看到原始 URL 目标,而不是带有我的附属扩展的新目标。

在此先感谢您,这是示例 HTML 代码:

<script type="text/javascript">
    onmousemove = function adfly() {
        adfly_id = 'xxxxxx';
        for(var i = 0; i < document.links.length; i++) {
            var hrefer = document.links[i].href;
            if(hrefer.match("adf.ly") || hrefer.match("javascript:") || hrefer.match("#")) {
                document.links[i].href = document.links[i].href;
            } else {
                document.links[i].href = 'http://adf.ly/' + adfly_id + '/' + document.links[i].href;
            }
        }
    }
</script>
4

2 回答 2

0

你可以这样做:

  1. 遍历文本节点(或您感兴趣的子集),找到包含与URL 正则表达式匹配的节点。
  2. 为以下对象创建新节点:
    • 文本部分
    • 锚点/链接
  3. 将这些新节点插入 DOM(删除/替换原始文本节点)

这将是一个与您现有的通过 document.links 的循环分开的循环。

最后但同样重要的是:警惕 XSS 漏洞!

于 2012-06-04T04:59:14.387 回答
-2

下面的锚标记在href属性中显示“google.fr”,但由于onclick,单击链接会将您带到那里列出的站点。

 <a title="google" href="http://google.fr/whatpeopleseeonrollover" onclick="this.href='http://yahoo.fr/wherepeoplegoforreal'">http://google.fr/whatpeoplethinktheygo</a>

您可以使用类似的方法来重定向页面上的链接。

于 2015-10-01T15:13:15.643 回答