通过jQuery检查属性href

时间:2011-03-06 13:59:57

标签: php javascript jquery html ajax

让我的网站为http://cars.com

我的网站上有http://girls.comhttp://google.comhttp://happy.com等链接。

这是js:

$("#wrapper a").live('click', function()
{
    var this_url = $(this).attr("href");
    $.ajax({
        url: this_url,
        complete: function(){
            //do something
        }
    });
});

因此,当我们点击链接时,它会加载该页面的html。

如何:

  1. 获取当前打开的网站的地址?喜欢php上的$_SERVER['SERVER_NAME']
  2. 清理属性href?应删除“#, ?”等符号
  3. 检查,如果此href是我的网站(/section/images/)的网址(可以是/,还是$_SERVER['SERVER_NAME'])?如果没有,不做任何事情(不想加载其他网站的html)。
  4. 感谢。

2 个答案:

答案 0 :(得分:2)

  1. 使用location.host property
  2. 使用正则表达式解析字符串。
    例如:

    var pathSection = /^[^?#]+/.exec(url)[0]
    
  3. 检查它是否以协议开头。使用像/^\w+:/这样的正则表达式 如果您的域中包含位置的绝对网址,则需要单独检查这些网址。

答案 1 :(得分:1)

出于安全原因,限制称为Same Origin Policy或短SOP是不可能的。您可以通过服务器端脚本代理请求来绕过此问题。