如何启用超链接打开模态对话框,同时也允许在同一链接上的新选项卡中打开
How To Enable a Hyper-link To Open a Modal Dialog whilst also allowing Open in New Tab on the same link
我正在开发一个网页。网页上有一个超链接,叫做"查看页面"。一旦单击,目标是在模态对话框中显示链接到的页面。
下面是我用来实现这一点的代码:<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> Test</title>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script>
<script>
function OpenModal() {
$("#divModal").dialog({
autoOpen: false, modal: true, title: 'Modal', width: 'auto', height: 'auto'
, buttons: { "Cancel": function () { $(this).dialog("close"); } },
}).dialog('open');
return false;
}
</script>
</head>
<body>
<a href="#" onclick="javascript:OpenModal();">View Page</a>
<div style="display:none;" id="divModal">
<iframe id="myIframe" src="SomeValidURL" width="1100" height="800" />
</div>
</body>
</html>
是否有一种类似于下面的功能可以实现,以允许用户右键单击查看页面链接,选择"在新选项卡中打开"或在新窗中打开,并有SomeValidUrl在新选项卡或新窗中打开?如果用户左击 someevalidurl ,页面应该在模态对话框中打开。
return false
确实没有问题。其实你应该这么做!如果你没有return false
或preventDefault
,你的模式将打开,然后链接将触发,转发到另一个页面。
如果你想让它工作,只是如果用户右击他的方式通过链接打开它在一个新的窗口/选项卡,这足以让你把SomeValidURL
(你在iframe
的src
属性)为a
元素的href
属性。
另外,作为一般提示,避免内联绑定事件;不如使用jQuery.on
:它更灵活,它坚持关注点分离的最佳实践,并且它确实有助于解决混乱。
为链接添加一个类,然后使用这个。
$(".link").mousedown(function(event) {
switch (event.which) {
case 1:
//modal code
break;
case 3:
window.open("http://www.google.com", '_blank');
break;
default :
window.open("http://www.google.com", '_blank');
break;
}
return false;
});
演示:http://jsfiddle.net/calder12/Er7NN/
然后允许正常使用链接,使用href
属性:
<a href="SomeValidURL" onclick="javascript:OpenModal();">View Page</a>
尽管return false
,这应该仍然工作,因为你的click
处理程序不涉及右键单击并选择"在新选项卡中打开"从结果浏览器呈现的上下文菜单。
相关文章:
- 在新选项卡中打开链接,但不使用_blank方法
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 如何在新选项卡中打开链接以及在当前选项卡中重定向
- 如何超链接在新选项卡中打开并携带一些变量的选择标记
- 如何防止iframe中的链接在新选项卡中打开
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- 打开除域之外在新选项卡中打开的所有外部链接
- 提交表单的可能性(左-/中-/在新选项卡或窗口中打开-)单击html链接
- jQuery UI - 使用外部链接在选项卡中打开手风琴
- 为什么 jQuery .after() 不链接新元素
- 使用页面上其他位置的链接激活选项卡
- 在选择后链接输入选项
- 从另一个 HTML 页面检索 cookie - 基于链接的选项选择
- 使用jqueryeasyui,如何通过选项卡中的链接创建选项卡
- 使用JavaScript打开动态链接新窗口(但不是弹出窗口)
- 使用JavaScript打开链接新窗口(而不是选项卡),无需键入两次URL
- 使用jquery在点击链接到新选项卡中的URL时生成图像
- 我如何在不影响布局的情况下将链接放在选项1,选项2等
- Xlxs.js的“l"单元格超链接对象选项工作
- JSP下拉列表,有3个相互链接的选项