未通过JavaScript打开新页面

Not opening new page throught JavaScript

本文关键字:新页面 JavaScript      更新时间:2023-11-03

我有一个脚本,它可以获取新页面的参数并重定向到此页面。我的功能:

function openPage(page) {
    alert("Pressed the button!"); //working
    window.location.href = "http://localhost:8080/Edas/" + page; //not working
}

和我的按钮:

<button id="btnViewMonthlyPurchaseReport" onclick="openPage('monthlyPurchaseReport.html')">View Monthly Purchase Report</button>

我认为我的问题在我的基本URL("localhost:8080/Edas/")中,但我真的不知道如何解决它。谢谢

注释中的问题是按钮位于form元素内部。

问题是,没有type属性的按钮将提交form,这将(不确定是否在每个浏览器中)导致所描述的问题,window.location.href = ...没有效果,页面将被重定向action中定义的url。如果form中没有定义action,那么它就是当前url。

你有不同的选择来解决这个问题:

  1. 您可以将按钮移出表单(如果不会影响可用性)
  2. 将按钮的type更改为button<button type="button">View Monthly Purchase</button>)-没有类型的默认行为为submit
  3. 您可以在openPage函数的末尾放置一个return false;,以防止默认行为(这类似于2.,但不同的是,button仍将标记为submit按钮,这在某些情况下可能对可用性很重要)

这样做:

JS

var url = window.location.href;
var dirnames = url.split('/');
function openPage(page) {
   alert("Pressed the button!"); //working
   window.location.href = "http://"+ dirnames[2] +"/Edas/" + page; 
}

我想你说你的问题在URL中是正确的。

您的monthlyBurchaseReport.html在哪里?如果它与带有按钮的html在同一目录中,请简单使用:

function openPage(page) {
   alert("Pressed the button!"); 
   window.location.href = page; 
}

我的问题是:我的按钮错误地位于表单中,@t.niese清楚地解释了原因。谢谢大家的帮助!