编辑:这是一个仅限Firefox的问题,与插件Adblock Plus相关。重新安装插件结束了这种奇怪的行为,其中带有一些特定特殊字符的URL会使锚点完全消失。
如何使用jQuery将具有特殊字符的URL归因于href?
我现在正在做的是:
var x = encodeURI(myURLhere)
我知道它会生成有效的链接,因为我一直在使用console.log(x)
来检查它。
但是当我这样做时:
$("#tweet").attr("href", x);
我的主播就消失了。
发生这种情况的网址的一个示例:
https://twitter.com/intent/tweet?text=%22If%20it%20is%20not%20right%20do%20not%20do%20it;%20if%20it%20is%20not%20true%20do%20not%20say%20it.%22%20%E2%80%93%20Marcus%20Aurelius
有没有人有任何建议,我可以做些什么来将这些网址归因于我的主播?
答案 0 :(得分:6)
问题是因为字符串中的;
字符在使用encodeURI
时未编码,而是需要关闭查询字符串并直接在其上调用encodeURIComponent()
注意:要使此代码段起作用,您需要打开“推文”'链接在新标签中,因为Twitter无法在iframe中显示。
var text = 'If it is not right do not do it; if it is not true do not say it." – Marcus Aurelius"'
var x = encodeURIComponent(text);
$("#tweet").attr("href", 'https://twitter.com/intent/tweet?text=' + x);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="" id="tweet">Tweet</a>
&#13;