需要关闭花哨框按钮上的当前窗口单击
Need to Close Current Window on fancybox Button Click
我需要它进行年龄验证,当我点击fancybox的未满21岁年龄按钮时-我的当前窗口应该关闭。
我的代码是这样的:<div style="display:none;">
<div id="age-popup">
<div style="margin: 0 auto;text-align: center;">
<h2>Welcome!</h2>
<h3>Please Verify Your Age to Enter.</h3>
<input type="button" name="age" onclick="return overage();" value="21 & Over" />
<input type="button" id="WarringMsg" name="WarringMsg" onclick="close_window()" value="Under 21" />
</div><br>
<p>Our product is not appropriates for individuals under 18 and window will be close automatically.</p>
</div>
function overage()
{
user = "verifieduser";
setCookie("username", user, 30);
jQuery.fancybox.close();
}
function close_window() {
// window.open("about:blank","_self");
// window.close();
window.open('','_self');
self.close();
}
窗口。close在Chrome和FF中不工作
普通javascript不能随意关闭窗口。这是一项不久前引入的安全功能,用于阻止各种恶意利用和骚扰。
来自window.close()的最新工作规范:
Window对象上的close()方法应该,如果满足以下所有条件,关闭浏览上下文A:
对应的浏览上下文A是脚本可关闭的。现有脚本的浏览上下文熟悉浏览上下文A。允许现有脚本的浏览上下文导航浏览上下文A。如果浏览上下文是由脚本创建的辅助浏览上下文(与用户的操作相反),或者浏览上下文的会话历史仅包含一个Document,则浏览上下文是脚本可关闭的。这意味着,除了一个小的例外,javascript不能被允许关闭一个不是由同一javascript打开的窗口。
Chrome允许这种例外——它不适用于用户脚本——但是Firefox不允许。Firefox的实现明确指出:
此方法只允许在脚本使用该窗口打开的窗口中调用。开放的方法。如果你试图使用窗口。关闭一个Greasemonkey/Tampermonkey/userscript,你会得到:Firefox:错误信息,"脚本可能无法关闭未由脚本打开的窗口。"Chrome:只是静默失败。
长期解决方案:
解决这个问题的最好方法是制作一个Chrome扩展和/或Firefox插件。这些可以可靠地关闭当前窗口。然而,由于安全隐患,窗口构成。关闭,是少得多的Greasemonkey/Tampermonkey脚本;Greasemonkey和Tampermonkey可以在他们的API中合理地提供此功能(本质上是为您打包扩展工作)。考虑提出一个特性请求。
变通方法:
Chrome目前容易受到"自我重定向"漏洞的攻击。因此,像这样的代码目前将在Tampermonkey脚本中工作:
open(位置,_self) .close ();这是一个错误的行为,在我看来,很可能会被Chrome的未来版本所阻止,所以在使用这个hack时要记住这一点。
Firefox对该漏洞是安全的。所以,javascript唯一的方法就是削弱安全设置,一次一个浏览器。
可以打开about:config和setAllow_scripts_to_close_windows设置为true
如果您的脚本是供个人使用,请继续这样做。如果你让其他人打开这个开关,他们会很聪明,也很有理由,带着偏见拒绝。
目前Chrome没有相应的设置。这可能适用于某些浏览器:HTML:
<input type="button" name="Quit" id="Quit" value="Quit" onclick="return quitBox('quit');" />
JavaScript:
function quitBox(cmd)
{
if (cmd=='quit')
{
open(location, '_self').close();
}
return false;
}
试一下这个测试页面:(现在在Chrome 40和Firefox 35中测试)
http://browserstrangeness.bitbucket.org/window_close_tester.htm- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 单击时隐藏弹出窗口
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 试图修改此javascript代码以减小弹出窗口的大小,或者在用户单击框外时关闭
- 在外部(正文)单击时关闭弹出窗口
- 在窗口中单击按钮完成之前,光标不会停止.请继续卸载
- 编辑弹出窗口的HTML的单击命令
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 单击按钮时的窗口属性
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- 打开'选择文件'窗口单击锚链接(跳过单击'选择文件'按钮)
- 如何在显示多个标记时单击另一个标记时关闭信息窗口
- 即使我单击“确定”,模型弹出窗口扩展器仍保持打开状态
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 如何通过单击数据在新窗口上显示TableView数据
- 单击窗口关闭按钮时如何附加事件
- 单击窗口.位置,参数已传递
- 如果锚链接已被单击为在新选项卡中打开,则如何不运行onclick(ctrl并单击窗口)
- 单击窗口时,幻灯片菜单会重新移动
- 单击窗口打开_self