Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Firefox中使用javascript正则表达式替换href?_Javascript_Jquery_Ruby On Rails_Regex_Cross Browser - Fatal编程技术网

如何在Firefox中使用javascript正则表达式替换href?

如何在Firefox中使用javascript正则表达式替换href?,javascript,jquery,ruby-on-rails,regex,cross-browser,Javascript,Jquery,Ruby On Rails,Regex,Cross Browser,我尝试使用以下用于Rails上jQuery的代码更改网页上的一些链接 $(function () { $('#lesson a').live('click', function () { $.getScript(this.href.replace(/^(http...[^\/]+)?\/+(.*)$/,'/ajax/\\$2')); return false; }); }) 这个技巧适用于Chrome和Safari,但在Firefox和Opera中失败(点击时不会发生任

我尝试使用以下用于Rails上jQuery的代码更改网页上的一些链接

$(function () {
  $('#lesson a').live('click', function () {
    $.getScript(this.href.replace(/^(http...[^\/]+)?\/+(.*)$/,'/ajax/\\$2'));
    return false;
  });
})
这个技巧适用于Chrome和Safari,但在Firefox和Opera中失败(点击时不会发生任何事情)。代码可能有什么问题

编辑1:

该网页包括:

<div id="lesson">
  <a href="/subj1">Subject 1</a>
  ...
</div>

...

单击后,浏览器(即Firefox和Opera)应发出一个ajax请求
/ajax/subf1
您将字符串替换为
'/ajax/\\$2'


您有一个额外的反斜杠-如果您希望得到结果
/ajax/subc1
,请使用
'/ajax/$2'

您也可以包含示例HTML页面的源代码吗?@orangepips,刚刚完成了。请看更新的问题。它以什么方式失败?您会收到哪些错误?您应该
函数(e){e.preventDefault();/*您的代码*/}
@lonesomeday,而不是返回false,单击后不会发生任何事情谢谢!我误解了如何在javascript中引用正则表达式部分。有趣的是,它适用于某些浏览器。@Andrei-没问题!有时你写了一些东西,然后被它蒙蔽了双眼——即使它就在你面前
:)
。有些浏览器非常宽容——它们纠正URL甚至html,假设用户输入错误。例如,http:/google.com将在大多数浏览器中工作,即使它不是有效的url。IE自动将
\
更正为
/
(或者至少在7年前这样做了-从那时起就没有检查过),并可能将
/
折叠为
/
,给出正确的结果。