我的网站允许用户通过Fb按钮登录,我正在使用FB / Parse.com JDK进行此https://parse.com/docs/js/guide#users-facebook-users
一旦识别出用户,下面的代码就会记录用户并将其转发到网址上。这在Chrome下可以正常使用,但无法使用Safari,页面只停留在空白的fb.html页面上
我看到
存在一些历史性问题window.location.href =
但是,找不到适用于我的解决方案的修复程序。有没有人知道解决这个问题?
[HttpPost]
public ActionResult Edit(Employee employee)
{
if (ModelState.IsValid)
{
var employeeModify = db.Find(employee.Id);
employeeModify.name = employee.Name;
employeeModify.DepartamentId = employee.DepartamentId;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.IDList = new SelectList(db.Departments, "ID", "Name", employee.ID);
return View(employee);
}
答案 0 :(得分:8)
最佳方式适用于所有浏览器:
setTimeout(function(){document.location.href = "user_home.html";},250);
答案 1 :(得分:1)
我认为你需要使用......
window.location = 'user_home.html';
答案 2 :(得分:1)
我在Safari上也发生过这种情况并找到了这篇文章,但发现了另外一个我希望添加了大量浏览器支持的解决方案。而不是替换当前位置使用名为assign()
的位置对象上的方法document.location.assign(document.location.origin + "/user_home.html")
这也有效
location.assign(location.origin + "/user_home.html")
在桌面设备和移动iOS设备上使用Chrome和Safari进行测试
答案 3 :(得分:0)
当我遇到这个问题时,我使函数在任何Safari以及所有浏览器(包括移动浏览器)上都能正常运行:
function windowLocation(url){
var X = setTimeout(function(){
window.location.replace(url);
return true;
},300);
if( window.location = url ){
clearTimeout(X);
return true;
} else {
if( window.location.href = url ){
clearTimeout(X);
return true;
}else{
clearTimeout(X);
window.location.replace(url);
return true;
}
}
return false;
};
是有点“肮脏”的解决方案,但是无论如何都可以重定向页面。