html实体/转义为动态网址(ajax更新的网址)?

时间:2012-01-26 19:23:48

标签: regex html-entities

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,如按钮。

但是,我的网址包含/#+& - 我是否需要逃避这些,我会使用正则表达式吗?

1 个答案:

答案 0 :(得分: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特殊字符"&</#和{{}进行编码1}}},你不需要再为HTML上下文编码了它。