如何在不点击链接的情况下在 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 中克隆数组? [复制]