javascript - 如何使用 .attr ("href"之前的参数添加当前 url)?

标签 javascript jquery

我有外部链接<a href="http://notmysite.com/">Link</a> 我需要添加:http://myurl.com?url= 之前 外部链接的 href。

制作
<a href="http://myurl.com/current/page?url=http://notmysite.com/">

我现在的js代码:

  $.expr[':'].external = function(obj){
      return !obj.href.match(/^mailto\:/)
              && (obj.hostname != location.hostname);
  };
  $('a:external').addClass('external').attr("href", window.location+("href"));

这是行不通的。我猜这是语法。

我是 jquery 的新手,所以更喜欢更脏/更直接的方法

干杯!

最佳答案

尝试以下方法,在将 URL 附加到网关 URL 之前注意对其进行转义 URL 匹配更多 URL,并且略微优化:

var externalLinkPattern = new RegExp("^http://" + window.location.host, "i"),
    gateway             = "http://myurl.com/current/page?url=";

$("a[href^='http:']").each(function() {
    if ( !externalLinkPattern.test(this.href) ) {
        this.href = gateway + escape(this.href);
        $(this).addClass("external");
    }
});

关于javascript - 如何使用 .attr ("href"之前的参数添加当前 url)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1954916/

相关文章:

javascript - Jquery停止函数

Javascript 加载带有 javascript 变量的链接作为查询字符串

javascript - 滚动到页面的那一部分后如何加载图像?

javascript - 如果 div 为空,则将其删除并更改下一个 div 的类

java - 使用通过 JSON 和 jQuery 传递的数据在下拉列表中创建两个值

jquery - 使用选中的 radio 过渡到 div

javascript - 难倒在 JS 纪元转换上

javascript - 为什么从 Backbone 中的自定义 BaseView 扩展时, 'events' 没有绑定(bind)到 View ?

php - Highcharts 数据来自 mysql 数据库

javascript - JS : Trying to use setTimeout with bootstrap modal