我只是想知道这条线对 IE7 有什么好处?此代码片段来自 Bootstrap 模式源代码。
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
最佳答案
在 IE8 之前,IE 对 getAttribute()
的实现中有一个“功能”
如果你有一个 <a>
像这样标记
<a href="#anchor">link</a>
并且您正在使用 element.getAttribute('href')
IE7 返回绝对路径 - http://example.com/index.html#anchor
而其他浏览器只返回 #anchor
.
bootstrap 中的正则表达式会处理这个 - 它会删除 #
之前的所有内容.
更新。另请参阅 SO(2009 年 10 月!)-> Wrong extraction of .attr(“href”) in IE7 vs all other browsers? 中的这个非常的老问题以及如何解决问题的各种建议。在我看来,Twitter Bootstraps 解决方案要好得多。
关于javascript - href && href.replace(/.*(?=#[^\s]+$)/, '' ) 在 bootstrap 模式中被注释为 "strip for ie7",这一行对 ie7 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630175/