【问题标题】:How to open new page in javascript without clicking a link如何在不点击链接的情况下在 javascript 中打开新页面
【发布时间】:2014-07-16 07:13:04
【问题描述】:

我已经阅读了许多关于此的帖子并尝试了不同的方法,但仍然遇到问题。我在 php 页面中有一个 html 表单,当用户单击屏幕上的按钮时,它有一个 onClick 命令来运行 javascript 验证过程。这一切都很好,但在验证结束时,我想根据 customURL 变量的值(它确实包含正确的 URL)打开一个新的 php 页面在同一个选项卡中。但是页面只会重新加载自己,而不是新页面。我已经尝试过 window.location.href、location.href 和 document.location。有谁知道为什么这些都不起作用,或者可以提出一种替代方法?谢谢。

if(optionChosen == "overview") { customURL ='overview.php'; }
if(optionChosen == "tasks")    { customURL ='tasks.php';}
if(optionChosen == "guidance") { customURL ='guidance.php';}
if(optionChosen == "feedback") { customURL ='feedback.php';}
if(optionChosen == "progress") { customURL ='progress.php';}

customURL = customURL + "?uid=" + unitChosen;
document.location = customURL;

【问题讨论】:

  • 你必须使用window.open(customURL,'_blank'); 而不是document.location = customURL;
  • window.location.href = customURL 应该可以工作。如果不是,请打开浏览器控制台并查看是否打印出任何内容
  • 谢谢大家 - 但没有运气。 window.open 至少会打开新页面,但在我不想要的新标签中 - 它必须在现有标签中。 window.location 和 window.location.href 似乎只是在同一个选项卡中重新加载现有页面。

标签: javascript php html


【解决方案1】:

首先确保选择了任何选项或编写这样的代码

if(optionChosen == "overview") { customURL ='overview.php'; }
else if(optionChosen == "tasks")    { customURL ='tasks.php';}
else if(optionChosen == "guidance") { customURL ='guidance.php';}
else if(optionChosen == "feedback") { customURL ='feedback.php';}
else { customURL ='progress.php';}

当用户在浏览器中点击“返回”时,使用它来避免重定向

window.location.replace('http://somewhereelse.com');

使用这个重定向,返回按钮调用会再次触发重定向

window.location.href = "http://somewhereelse.com";

然后根据您的要求使用以下任何一种方法。


为了完整起见,本质上是 window.location.href 的别名

window.location = "http://somewhereelse.com";

【讨论】:

  • 谢谢 AaJey 我会修改这个,尽管这不是问题所在,因为我已经检查了正确的 URL 是否被放置在 customURL 变量中。只需要找到一种在同一选项卡中显示新页面的方法 - 尽管提出了建议,但还没有运气,
【解决方案2】:

window.location.href = customURL;

【讨论】:

  • @nl-x 一个评论就足够了
  • @nl-x 是的,它也证明了这个问题有多糟糕。一个简单的谷歌搜索就会给他正确的语法。
  • 谢谢我知道语法.. window.location /window.location.href / window.location.replace / document.location / all 重新加载选项卡中的同一页面。 window.open 打开新页面,但在新选项卡中。我不知道为什么会这样。
【解决方案3】:

它是 window.location ,而不是 document.location ,更准确地说它实际上是 window.location.href

【讨论】:

    【解决方案4】:

    谢谢大家-最终找到了一种对我有用的新方法-使用 document.input.action = customURL; 并返回输入表单。 所以会坚持这个。感谢您的建议和帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-30
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多