阻止网页对话框生成新的浏览器窗口
Prevent webpage dialog from spawning new browser window?
我有一个打开的网页对话框。从那里,我想做的是,当用户单击链接时,用修改后的查询字符串参数刷新对话框的内容。我遇到的问题是,与其用新参数刷新同一个网页,不如弹出一个新的浏览器窗口。
这是用于打开对话框的页面:
<!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
,但结果是一样的。
新的浏览器窗口显示的正是我所期望的。只是不在同一个窗口。
想法?
自从发布这个问题以来,我提出了两个可能的解决方案。万一有人追上我,想知道我最后做了什么,给你!
第一个只是使弹出窗口成为非模态的。删除语气词使我的行为完全符合我的预期。然而,由于不同的原因,这在我的情况下不起作用。。。会话cookie似乎没有被携带,这会导致在显示正确页面之前显示登录页面。这让我觉得很奇怪,但我没有时间去调查为什么会发生这种事。
第二个(这就是我最终采用的解决方案)是使用iframe,并在iframe中显示我需要的内容。绝对不是我的最爱,但它很管用!
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用特定大小的浏览器窗口打开我的页面
- Flash AS3关闭浏览器窗口
- 如何打开/移动主屏幕左侧的浏览器窗口
- 使用 javascript 打开新的浏览器窗口时出错
- 如何在浏览器窗口变大/变小时捕捉元素的宽度
- 更改当前选项卡或浏览器窗口的标题
- 如何相对于浏览器窗口定位DIV
- 浏览器窗口中的应用内FB页面插件链接
- 在浏览器窗口中创建动态灵活的分割标记
- 基于浏览器窗口大小的条件 JavaScript 执行
- 关闭黑莓浏览器窗口 JavaScript
- 如何在缩放时获取移动浏览器窗口的宽度
- 接受从另一个浏览器窗口拖放图像
- 从扩展的 javascript 中获取 Firefox 浏览器窗口句柄
- 如何将宽度和高度变量设置为浏览器窗口的宽度和高度
- 在浏览器窗口大小调整时更改 JS 逻辑
- 调整大小后更改浏览器窗口的宽度
- 如何在浏览器窗口底部的直线上绘制圆圈数组
- 如何防止高图工具提示弹出隐藏,在图形区域或浏览器窗口上调整大小