Safari 连续执行两次window.location=url的问题
function(url1,url2){
window.location=url1;
window.location=url2;
}在Safari 里面第一条语句不会执行(或许不能这么说,反正是第一条想要的效果没有出现)修改成这样就OK,
function(url1,url2){
window.location=url1;
alert("OK");
window.location=url2;
}试着另外加一个函数通过settimeout来执行window.location=url2;也是一样的问题,各位有什么好的办法吗?
function(url1,url2){
window.location=url1;
window.location=url2;
}在Safari 里面第一条语句不会执行(或许不能这么说,反正是第一条想要的效果没有出现)修改成这样就OK,
function(url1,url2){
window.location=url1;
alert("OK");
window.location=url2;
}试着另外加一个函数通过settimeout来执行window.location=url2;也是一样的问题,各位有什么好的办法吗?
解决方案 »
- 请问javascript实例对象问题?
- 求ubb里javascript的正则表达式,在线等~~
- 用JS给DIV 添加子元素LI时样式无法显示
- 怎样调用iframe中的一个函数或按钮
- jsp中,我上传文件,鼠标点击可以下载,却不知道url??
- 怎样导出图片到excel表格 十万火急!!!!!
- 怎样才能让我的四个ocx的控件,随IE size 的改变,而相应的变化?
- 我要做一个窗口从天而降,然后再依原路径返回。
- 字符串分离
- 以前在网上下载过很多图标,如新增,保存,剪切,粘贴等,现在找不到了,不知哪儿能下载?
- javascript怎么得到一个字符串显示出来的宽度?
- javascript使用遇到问题!!各位大侠进!!
function sendEmailWithMailTo(toemailstr,ccemailstr,bccemailstr) {
var mailstr = "mailto:";
toemailstr = encodeURIComponent(toemailstr);
ccemailstr = encodeURIComponent(ccemailstr);
bccemailstr = encodeURIComponent(bccemailstr);
mailstr = mailstr + toemailstr;
if(ccemailstr !=""){
mailstr = mailstr + "?cc=" + ccemailstr;
if (bccemailstr != "")
mailstr = mailstr + "&bcc=" + bccemailstr;
}
else{
if (bccemailstr != "")
mailstr = mailstr + "?bcc=" + bccemailstr;
}
window.location = mailstr;
}
function sendDirectMail(jsonObj,url){
sendEmailWithMailTo(jsonObj.simpleStr,"","");
window.location=url;
}
就可以,这是为什么?
这个问题困扰我很久了,一个简单的系统,不能用Ajax,还要所有浏览器兼容,如果容许我们用Ajax的话,这个问题就不是问题了.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
</body>
</html>
<script type="text/javascript">
test1();
function test1(){
window.location="http://www.google.cn";
alert("123");
window.location="http://www.baidu.cn";
}
function test2(){
gotoURL("http://www.google.cn");
alert("123");
gotoURL("http://www.baidu.cn");
}function gotoURL(strURL){
setTimeout(function(){
window.location = strURL;
},10);
}</script>
实测,页面遵循标准的话,不止是safari,所有浏览器都会这么做。
因为你引用的是同一个window对象,即使页面跳转,内存中加载到window上的操作依然会继续执行。
你用上面代码试试,设置浏览器的选项为链接在新窗口中打开你就会发现问题。
你可以考虑用switch语句选择你所需的条件。
或者你直接用window.open新开一个窗口避免在原窗口操作。