关于Y.getLocation的简介是

意思就是从window/frame中的YUI实例运行时,或者没有浏览器环境下,返回一个Location对象,原因是低版本的chrome和safafi会有一个Bug存在

[WebKit Bug 34679](https://bugs.webkit.org/show_bug.cgi?id=34679)

当你在一个

location(function(window){

  // A convenient shortcut.
var win_loc = window.location,
loc = location,
state; (function loopy(){
console.log([
'win_loc.href: ' + typeof win_loc.href,
'loc.href: ' + typeof loc.href,
'location.href: ' + typeof location.href,
'window.location.href: ' + typeof window.location.href
].join(', '));
timeout_id = setTimeout( loopy, 1000 );
})(); })(this);

当我们再随意点击一个链接后,通过后退再次返回这个函数所存在的页面时,在safari(5.1.7)中,前两个变成了undefined,

测试地址http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/

YUI的解决方案

locationY.getLocation = function(){
var win = Y.config.win;
return win & win.location;
}
04-30 09:31