在Apex中,如果在一个Visualforce页面或Lightning组件中使用window.close
方法来关闭浏览器窗口,有时候可能会出现不起作用的问题。这通常是因为浏览器的安全机制阻止了关闭窗口的操作。
要解决这个问题,可以尝试以下方法:
$A.get("e.force:closeQuickAction").fire();
来关闭Lightning Quick Action窗口。这个方法只适用于Lightning组件中的Quick Action窗口关闭操作。({
closeWindow : function(component, event, helper) {
$A.get("e.force:closeQuickAction").fire();
}
})
window.open
方法打开一个空白页面,并在新页面中调用window.close
方法关闭当前页面。({
closeWindow : function(component, event, helper) {
var newWin = window.open('', '_self');
newWin.close();
}
})
window.close
方法,可以尝试使用apex:commandButton
标签,并在其onclick
事件中调用Apex控制器中的一个方法,然后在该方法中使用window.close
方法关闭窗口。
public class YourController {
public PageReference closeWindow() {
return new PageReference('javascript:window.close();');
}
}
请注意,由于浏览器的安全限制,不是所有的浏览器和环境都支持使用window.close
方法来关闭窗口。所以,以上方法可能在某些情况下仍然无效。