帮助 Javascript 链接替换

Posted

技术标签:

【中文标题】帮助 Javascript 链接替换【英文标题】:Help with Javascript Link Replacement 【发布时间】:2011-11-10 05:02:03 【问题描述】:

我正在尝试完成我网站的 webapp 版本。我真的很接近,但我唯一遇到的麻烦是将 a href 转换为 javascript 链接(以便文章在应用程序中打开而不是在 Mobile Safari 中打开)。我以为我找到了一个简单的脚本来帮助我,但事实证明该脚本也与我的 cmets 插件 (Disqus) 混淆了。我将在下面发布脚本,但是有什么方法可以让脚本转换所有链接除了 div“disqus_thread”中的那些? 我研究了可能的替代方案,但我能找到的唯一解决方案是使用脚本并指定所有其他 div。希望这里有人可以帮助我:P 谢谢, 马特

   <script>
     var a=document.getElementsByTagName("a");
     for(var i=0;i<a.length;i++)
     
     a[i].onclick=function()
     
     window.location=this.getAttribute("href");
     return false
     
     
   </script>

【问题讨论】:

【参考方案1】:

我不知道你为什么要这样做。因为您将锚的 href 属性设置为 window.location 无论如何都将通过锚的默认行为来完成。

如果你想选择除disqus_thread 内的所有锚点并执行你的逻辑,你可以试试这个。确保在页面中包含 jQuery 库。

$(":not(#disqus_thread)").find("a").click(function()
   window.location.href = this.href;
   return false;
);

【讨论】:

感谢您的回复。我在标题中包含了 jQuery,但由于某种原因,同样的问题不断发生(点击在 Disqus 中写评论,我被重定向到“thepageurl/null”。原始脚本 Disqus 是一个评论系统,可以远程为 cmets 提供服务。该插件调用 Disqus cmets 而不是您的主题/Wordpress 的默认系统,并将其自身放入自己的 div 中,“disqus_thread”。 是的(填写文本以便我可以评论:P)

以上是关于帮助 Javascript 链接替换的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 快速入门

设置页面的所有链接目标

Javascript:帮助用 innerHTML 的 '<br>' 替换 '<div>'!

如何使用javascript用超链接替换单词?

javascript [JS]检测链接并用另一个字符串替换链接

javascript 替换博客作者页面链接