如何在不点击链接的情况下在 javascript 中打开新页面

Posted

技术标签:

【中文标题】如何在不点击链接的情况下在 javascript 中打开新页面【英文标题】:How to open new page in javascript without clicking a link 【发布时间】: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;

【问题讨论】:

试试这个***.com/questions/7077770/… 你必须使用window.open(customURL,'_blank'); 而不是document.location = customURL; window.location.href = customURL 应该可以工作。如果不是,请打开浏览器控制台并查看是否打印出任何内容 Java Script is not redirecting using window.location的可能重复 谢谢大家 - 但没有运气。 window.open 至少会打开新页面,但在我不想要的新标签中 - 它必须在现有标签中。 window.location 和 window.location.href 似乎只是在同一个选项卡中重新加载现有页面。 【参考方案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; 并返回输入表单。 所以会坚持这个。感谢您的建议和帮助。

【讨论】:

以上是关于如何在不点击链接的情况下在 javascript 中打开新页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 URL 的情况下在 facebook 上分享我的新闻

如何在不解析的情况下在javascript中同步包含JSON数据?

如何在不使用outerHTML的情况下在javascript中将标签作为文本? [复制]

如何在不点击标记的情况下在 iOS 谷歌地图中显示信息窗口?

如何在不使用原生 ios 应用程序中的 FBSDKShareDialog 的情况下在 Facebook 墙上分享照片或链接

如何在不使用 JSON.stringify 或 JSON.parse 的情况下在 javascript 中克隆数组? [复制]