2012-01-26 57 views
0
var fb_ps_page = window.location.href; 
document.write('<iframe src="//www.facebook.com/plugins/like.php?href=' + fb_ps_page + '&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&amp;appId=205223179497882" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>'); 

我的功能是將動態網址寫入Facebook之類的按鈕。html實體/轉義爲動態url(ajax更新url)?

但是,我的網址中包含/#+,並且& - 我需要逃避這些,我會做到這一點使用正則表達式?

+0

請注意允許在喜歡的URL中使用哈希(#),您將需要執行要共享的規範URL。 – DMCS

+0

真的嗎?即使通過使用html實體的#? – Jason

+0

Facebook的linter不會能夠獲得正確的內容,因爲它所依賴的是原始的HTML原始HTML從服務器發送下來,因爲它不運行JavaScript。 – DMCS

回答

1

要插入的URL環境,因此使用正確的URL編碼第一:

document.write('<iframe src="//www.facebook.com/plugins/like.php?href=' + encodeURIComponent(fb_ps_page) + '&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&amp;appId=205223179497882" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>'); 

由於encodeURIComponent並已編碼的HTML特殊字符"&</#+太) ,您不需要再爲HTML上下文進行編碼。

+0

是的,我今天沒有處理。我在這篇文章後約5秒完全弄清楚了。感謝您的幫助。 – Jason