关于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;
}