在我的MVC项目中,我有一个按钮,可以在新选项卡中打开一个页面。单击按钮,将在新页面上打开页面,并且应禁用该按钮。当用户关闭选项卡时,我想启用该按钮。有没有办法在jquery或javascript中做到这一点?我在网上搜索但没有回答。
答案 0 :(得分:2)
概念性的想法是在外部上下文(模块或全局变量)中维护对打开的窗口的引用,以便可以从代码中轻松访问它。这是一个例子:
var windowsArray = [];
function addWindowInTab() {
var newWindow = window.open('page.html', '_newtab');
windowsArray[windowsArray.length] = newWindow;
newWindow.onunload=enableButton;
}
function removeWindowTab(newWindow){
var idx = array.indexOf(newWindow);
if(idx != -1) {
windowsArray.splice(idx, 1);
}
}
function enableButton(){
$("#myButton").removeAttr("disabled");
}
//somewhere in MVC page
$(function(){
$("#buttonOpenWindow").click(function(){
addWindowInTab();
});
//later, when a button should be disabled...
if (windowsArray.length){
$("#myButton").attr("disabled", "disabled");
}
});
另请注意,您可以在此执行一些更高级的检查,例如是否打开了具有特定名称的窗口或是否打开了多个窗口。请记住,为了打开新选项卡,必须调用AddWindowInTab函数以响应用户操作,例如按Ctrl +单击鼠标左键