如何使此链接在javascript中工作

时间:2010-03-04 17:21:05

标签: javascript

好吧基本上我有这个javascript文件http://assets.revback.com/scripts/share1.js,它基本上通过javascript添加了一堆共享按钮。

我想要做的是将Twitter图片链接更改为使用网址缩短器:

所以代替:

<a href=\"http:\/\/twitter.com\/home?status=Interesting Post:(UURRLL)\" title=\"Click to share this page on Twitter\"><img src=\"http:\/\/assets.revback.com\/scripts\/images\/twitter.png\" border=\"0\"\/><\/a>

我想用

<a href="#" onClick="window.location='http://ko.ly?action=shorten&uri=' + window.location + '&dest=twitter.com/?status=Reading ';"><img src=http://assets.revback.com/scripts/images/twitter.png"><\/a>

但我需要那个底部的,用javascript友好语法编写。也就像在顶部,而不是http://,你有http://

4 个答案:

答案 0 :(得分:1)

失去onclick。它没有任何好处,因为它只是一个正常的链接(除了更多的破坏)。现在您不必担心在JavaScript中转义JavaScript以及随之而来的\\\\\\\\疯狂。

var buttonhtml= (
    '<a href="http://ko.ly?action=shorten&amp;uri='+encodeURIComponent(location.href)+'&amp;dest=twitter.com/?status=Reading">'+
        '<img src=http://assets.revback.com/scripts/images/twitter.png">'+
    '</a>'
);

(请注意,encodeURIComponent对于正确地将您当前的网址正确插入另一个网址而言不是必不可少的,它也可以保护您免受HTML注入,因为<&个字符获取% - 编码。如果没有该安全措施,任何包含您脚本的页面都会出现跨站点脚本漏洞。)

更好的是,完全丢失HTML字符串,并使用DOM方法创建内容。然后,您不必担心&amp;和其他HTML转义,并且您不必破坏您的HTML以及原始的,不可靠的字符串替换。你似乎在使用jQuery,所以:

var link= $('<a>', {href:'http://ko.ly?action=shorten&uri='+encodeURIComponent(location.href)+'&dest=twitter.com/?status=Reading'});
link.append('<img>', {src: 'http://assets.revback.com/scripts/images/twitter.png'});
link.appendTo(mydiv);

ETA:我用循环替换整个markuppy混乱,并将数据分解为查找。即。类似的东西:

(function() {
    var u= encodeURIComponent(location.href);
    var t= encodeURIComponent(document.title);
    var services= {
        Facebook: 'http://www.facebook.com/sharer.php?u='+u,
        Twitter: 'http://ko.ly?action=shorten&uri='+u+'&dest=twitter.com/?status=Reading',
        StumbleUpon: 'http://www.stumbleupon.com\/submit?url='+u+'&title='+t,
        // several more
    };

    var share= $('<div class="ea_share"><h4>Share this with others!</h4></div>');
    for (var s in services) {
        share.append($('<a>').attr('href', services[s]).attr('title', 'Click to share this on '+s).append(
            $('<img>').attr('src', 'http://assets.styleguidence.com/scripts/images/'+s.toLowerCase()+'.png')
        ));
    }
    $('#question .vt').append(share);
})();

答案 1 :(得分:0)

试试这个

<a href="#" onClick="window.location='http://site.com?action=shorten&uri='+ 
  window.location + '&dest=twitter.com/?status=Reading;'">tweet this</a>

答案 2 :(得分:0)

更改href属性中链接的onclick

<a href="#" onclick="this.href='http://site.com?action=shorten&uri=' + window.location + '&dest=twitter.com/?status=Reading';">tweet this</a>

除非事件处理程序href收到{{1}的返回值,否则将始终执行默认操作(转到onclick属性指定的页面) }}。因此,在false发生之前更改它会导致它转到您想要的页面,只要您不返回false。

答案 3 :(得分:0)

&lt; a href =“#”onClick =“window.location ='http://site.com?action=shorten&uri='+ window.location.href +'&amp; dest = twitter.com /?status = Reading'; return false; “&gt;发推文