不通过JavaScript打开新页面

时间:2013-11-27 16:18:30

标签: javascript onclick window.location

我有一个脚本可以通过参数获取新页面并重定向到此页面。 我的职责:

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>

我认为我的问题出在我的基本网址(“localhost:8080 / Edas /”)中,但实际上并不知道如何修复它。 谢谢!

4 个答案:

答案 0 :(得分:0)

这样做:

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; 
}

答案 1 :(得分:0)

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

您的monthlyPurchaseReport.html在哪里?如果它与按钮的html位于同一目录中,请使用:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

在评论之外,问题是该按钮位于form元素内。

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

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

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