window.location()无法正常工作,无法打开页面

时间:2011-05-23 07:28:29

标签: javascript html

我有一个带有onClick的提交按钮:

<div id="messageDiv">
<form>
<textarea name="message" rows="10" cols="20"></textarea></textarea>
<br /><br />
<input type="submit" value="Send" onClick="sendmail()">
<input type="reset" value="Reset" name='reset'>
</form>
</div>

然后我收到了sendmail:

   function sendmail()
   {   
      window.location.href = "http://www.rainbowcode.net/index.php/profiles/mail?="+mailid;
      window.location('http://www.rainbowcode.net/index.php/profiles/mail?='+mailid);
      //return true;
   }

mailid是一个全局变量,它在另一个JS函数中设置,它确实包含正确的值。为什么window.location没有打开我的页面?

如果我用mailid手动打开它,它可以正常工作..

5 个答案:

答案 0 :(得分:56)

设置位置工作正常,但随后提交表单,这将重新加载当前页面。

从方法返回false:

function sendmail() {   
  window.location.href = "http://www.rainbowcode.net/index.php/profiles/mail?="+mailid;
  return false;
}

并在事件中返回该状态以停止提交:

<input type="submit" value="Send" onclick="return sendmail()">

答案 1 :(得分:3)

如果您需要打开新窗口,则应使用window.open()方法。 window.location指的是当前的Windows地址,仅在使用window.location.reload()时 - 重新加载CURRENT窗口。

答案 2 :(得分:0)

已经有了可靠的答案,但为什么要打击系统?特别是如果您使用jquery或onClick进行调用 - 可能没有内联返回是我的观点 - 所以您只需更改submit上的操作:

document.form.action = 'http://www.rainbowcode.net/index.php'

然后,如果需要,可以选择任何表单变量,否则忽略。

答案 3 :(得分:0)

尝试使用replace功能

window.location.replace('http://www.rainbowcode.net/index.php/profiles/mail?='+mailid)

答案 4 :(得分:0)

我花了2天的时间尝试这里和其他地方显示的每个解决方案,但没有成功。然后,我删除了form标记,由于没有submit按钮,该标记没有用,而使用以下方法解决了问题:

window.location = 'mypage.php', true;