javascript - 无法使用 .attr() 设置 href

标签 javascript jquery html

编辑:这是一个与插件 Adblock Plus 相关的仅限 Firefox 的问题。重新安装插件可以结束这种奇怪的行为,在这种行为中,带有某些特定特殊字符的 URL 会使 anchor 完全消失。

如何使用 jQuery 将具有特殊字符的 URL 归因于 href?

我现在正在做的是:

var x = encodeURI(myURLhere)

我知道它会生成有效链接,因为我一直在使用 console.log(x) 来检查它。

但是当我这样做的时候:

$("#tweet").attr("href", x);

我的 anchor 消失了。

发生这种情况的 URL 的一个示例:

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

有没有人对我如何将此类 URL 归因于我的 anchor 的 href 有任何建议?

最佳答案

问题是因为字符串中的 ; 字符,在使用 encodeURI 时没有编码,而是需要拆分查询字符串并调用 encodeURIComponent() 直接在上面。

注意:要使此代码段生效,您需要在新选项卡中打开“Tweet”链接,因为 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>

关于javascript - 无法使用 .attr() 设置 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45207687/

相关文章:

javascript - HTML href =""与 onclick ="self.location.href=' ' "

javascript - 通过悬停显示内容详细信息,如使用 javascript 的 stackoverflow

javascript - 如何附加图像序列化?

javascript - 动画边框

javascript - 在同一个对象中添加两个字符串属性(Uncaught ReferenceError)

javascript - 数组引用中的 Angular 翻译

javascript - HTML看不到Javascript代码; php代码中的执行没有错误就中断了?

javascript - JS函数没有得到下拉文本

html - 如何为嵌套导航中的链接设置内容

jquery - 如何根据按下的按钮调出不同的对话框