我有一个打开的网页对话框。从那里,我想做的是当用户点击链接时,用修改的查询字符串参数刷新对话框的内容。我遇到的问题是,不是用新参数刷新同一个网页,而是弹出一个新的浏览器窗口。
以下是用于打开对话框的页面:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function ShowPopup() {
var popWinFeatures = "dialogWidth: 800px;dialogHeight:600px;center:yes;status:no;scroll:no;resizable:yes;help:no";
window.showModalDialog("webPageDialog.html","PopUpWin",popWinFeatures);
}
</script>
</head>
<body>
<a href="#" id="openWebPageDialog" onclick="ShowPopup()">Click For Modal</a>
</body>
</html>
这是网页对话框中的代码,尝试使用更改的查询字符串参数刷新网页:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="scripts/jquery-1.6.4.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var queryString = "?ab=123";
var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
$('#testLink').attr('href', newURL+queryString);
});
</script>
</head>
<body>
<a href="#" onclick="" id="testLink" target="_self">Please Click Me</a>
</body>
</html>
我也尝试过使用window.open
以及设置window.location
。我也试过设置window.location.href
但结果是一样的。
新的浏览器窗口正好显示了我的期望。它只是不在同一个窗口。
思想?
答案 0 :(得分:0)
自发布此问题以来,我提出了两种可能的解决方案。万一有人跟我走,想知道我最后做了什么,你去吧!
第一个是让弹出非模态。删除模态片给了我完全像我预期的行为。这在我的情况下不起作用,但是出于不同的原因......似乎会话cookie没有被携带在这个Web应用程序中,会导致登录页面显示之前显示正确的页面。这让我觉得很奇怪,但没时间调查为什么会发生这种情况。
第二个(这是我最终使用的解决方案)是使用iframe,并在iframe中显示我需要的内容。绝对不是我最喜欢的,但它确实有效!