href&& href.replace(/.*(?=#[^ \ s] + $)/,'')在bootstrap模式中注释为" strip为ie7",这行是什么为ie7做什么?

时间:2015-09-17 12:19:31

标签: javascript twitter-bootstrap modal-dialog

我只是想知道这条线路为IE7做了哪些商品?此代码段来自bootstrap模态源代码。

var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7

1 个答案:

答案 0 :(得分:2)

在IE8之前,IE的getAttribute()

的实现中有一个“功能”

如果你有<a>这样的标签

<a href="#anchor">link</a>

并且您正在使用element.getAttribute('href') IE7返回绝对路径 - http://example.com/index.html#anchor,而其他浏览器只返回#anchor

引导程序中的正则表达式负责处理 - 它会在#之前删除任何内容。

更新。参见SO中的非常旧问题(2009年10月!) - &gt; Wrong extraction of .attr(“href”) in IE7 vs all other browsers?提出了如何解决问题的各种建议。在我看来,Twitter Bootstraps解决方案要好得多。