失去onclick
。沒有任何好處,因爲它只是像一個正常的鏈接(除了更多的破碎)。現在您不必擔心JavaScript內部的JavaScript轉義以及隨之而來的瘋狂。
var buttonhtml= (
'<a href="http://ko.ly?action=shorten&uri='+encodeURIComponent(location.href)+'&dest=twitter.com/?status=Reading">'+
'<img src=http://assets.revback.com/scripts/images/twitter.png">'+
'</a>'
);
(注意encodeURIComponent
,這是正確插入您目前的網址到另一個網址不會破壞,也保護您免受HTML注入,因爲<
必要的,&
字符得到%
編碼過的。如果沒有保障,包含腳本的任何頁面都存在跨站點腳本漏洞。)
更好的是,完全丟失HTML字符串並使用DOM方法創建您的內容。那麼你不需要擔心&
和其他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);
})();
你在問什麼? – SLaks 2010-03-04 17:23:55
基本上我通過JavaScript插入到現有頁面的鏈接,所以我需要解析該底部鏈接,以使其對javascript友好。你知道做一些事情,比如讓所有的/ be \/ – Andrew 2010-03-04 17:26:30
你誤解了字符串文字。你能告訴我們你的代碼嗎? – SLaks 2010-03-04 17:30:45