问题是,当我调用window.close()
或self.close()
它没有关闭窗口时.现在似乎有一种信念,即在Chrome中你无法通过脚本关闭任何非脚本创建的窗口.这显然是错误的,但无论它应该仍然这样做,即使它需要弹出警报确认.这些都没有发生.
那么,是否有人使用真实的,功能性的,经过验证的关闭窗口的方法,使用类似的东西javascript:window.close()
或者javascript:self.close()
实际上做了预期的东西以及在非Chrome浏览器的每个浏览器中都能正常运行的东西?任何建议将不胜感激,我正在寻找Javascript特定的解决方案,没有JQuery或第三方实现.
更新:虽然所提出的大部分内容存在严重的局限性和可用性问题,但// @grant window.close
在脚本标题中使用的最新建议(特定于TamperMonkey)通常会在通常无法处理close方法的选项卡上执行此操作.虽然不完全理想,并没有针对每种情况推广,但在我的情况下,这是一个很好的解决方案.
有没有办法通过Protractor或WebDriver关闭标签?
我问,因为虽然我知道如何以编程方式切换标签,但它没有将活动标签置于前台.我无法总是告诉我在SauceLabs上运行的E2E测试中发生了什么,因为当我查看屏幕投射时,它显示的是我导航离开的标签,而不是活动标签.
我错了吗?
it('should do something in the previous tab', function(done) {
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[0]);
// do something
expect(something).toEqual(thisThing);
done();
});
});
Run Code Online (Sandbox Code Playgroud) 我的网页上有一个关闭链接.我想用它来点击它时关闭当前标签.我已经写了
<a href="#" onclick = "javascript:self.close();">close</a>
Run Code Online (Sandbox Code Playgroud)
上面的代码似乎在Internet Explorer中运行良好.但它不适用于Mozilla Firefox和Google Chrome.请帮我解决这个问题.
是否可以使用Javascript获取浏览器的主页?
我想在一个页面上放置一个链接到浏览器中设置的主页.
我想使用javascript/Jquery关闭当前选项卡.但我没有找到任何解决方案.我读到window.close()仅适用于使用window.open()
方法打开的窗口.那么有没有办法向系统发送命令,用户按ctrl + w也关闭此窗口.小提琴
function down(){
window.close()
}
Run Code Online (Sandbox Code Playgroud) 我有一个名为Shrtr的网址缩短Chrome扩展程序.现在,它允许用户将缩短的URL复制到剪贴板,但在下一个版本中,我添加了使用mailto:
链接(即mailto:?subject=<original page title>&body=<short URL>
)通过电子邮件发送缩短的URL的功能.
问题是,你不能只是document.location.href = 'mailto...';
从扩展分配.以下两种方法对我有用,但两者都有,我最终在浏览器中打开了一个空白选项卡:
方法1: window.open
var wnd = window.open(emailUrl);
setTimeOut(function() {
wnd.close();
}, 500);
Run Code Online (Sandbox Code Playgroud)
注意在关闭窗口之前需要等待.这有效(即预先填充邮件客户端新消息对话框),但新选项卡仍保持打开状态.
方法2:使用 chrome.tabs
chrome.tabs.create({ url: emailUrl }, function(tab) {
setTimeOut(function() {
chrome.tabs.remove(tab.id);
}, 500);
});
Run Code Online (Sandbox Code Playgroud)
同样,工作 - 但标签保持打开状态.有任何想法吗?
我的网站上有一个注册系统,它使用常见的激活电子邮件技巧.此电子邮件仅包含说明和指向我网站上激活页面的链接.因此,假设我在网站上注册,打开一个新选项卡来检查我的电子邮件,然后点击链接,该链接将在另一个新标签中打开,导致在网站上打开两个标签(其中一个是btw仍然告诉他们o检查他们的邮件).
有没有办法让电子邮件中的链接在我的网站的第一个标签中打开?(如果前一个选项卡已关闭或移动到另一个域,则打开一个新选项卡).
感谢您的任何帮助/建议!
我的应用程序是管理软件,为了方便用户,我想让他们打开多个标签,一次更改多个记录的参数.但在完成他们正在做的任何事情之后,标签保持打开状态,我得到了一些抱怨.基本上我的问题是:
如果有办法关闭浏览器选项卡,发送请求到我的支持bean中的方法?例如:
JSF页面:
<h:commandButton value="Public score"
action="#{assignmentBean.publicSelected()}">
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
豆法:
public void publicSelected() {
application.setAssignmentStatus(done);
dataAccess.mergeEntity(application);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在合并命令后添加一些东西并关闭激活方法的浏览器选项卡?感谢帮助
完整的解决方案代码我很难混合使用JS和JSF,所以对于任何一个也不好的人我都会使用Tiago Vieira Dos Santos提示发布完整的代码解决方案.
现在我的按钮代码如下所示:
<h:commandButton value="Public score"
action="#{myBean.doThings}">
<f:ajax execute="@this" onevent="pop"/>
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)
加上页面底部我添加了如下代码:
<script type="text/javascript">
function pop(data){
if(data.status == "success"){
window.close();
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
现在在方法完成后必须完成的操作窗口关闭.
我想使用JavaScript动态插入表单,然后提交它并在新窗口中打开目标.
这是我的代码:
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", xxx);
form.setAttribute("onsubmit", "window.open('about:blank','Popup_Window','scrollbars=yes,width=550,height=520');");
form.setAttribute("target", "Popup_Window");
document.body.appendChild(form);
form.submit();
Run Code Online (Sandbox Code Playgroud)
此代码有效 - 它动态插入表单并成功提交表单.但是,表单在新选项卡中打开,而我希望它在新窗口中打开.有什么想法吗?对于如何解决这个问题,有任何的建议吗?我也对jQuery持开放态度.
谢谢!
编辑:我不确定为什么人们将此标记为重复.是的,它与其他问题在同一主题上,但答案没有关系 - 声称的重复问题有一个新的行,搞乱了代码,我没有,但我的代码仍然无法正常工作......
我想从JavaScript关闭Firefox选项卡.请不要误解我.我不是要关闭弹出窗口而是选项卡.我知道JavaScript无法关闭它尚未打开的窗口.因此我尝试了下面的代码,但它适用于所有浏览器,但不适用于Firefox.
window.open('','_self','');
Window.close();
Run Code Online (Sandbox Code Playgroud) javascript ×7
html ×2
jquery ×2
browser ×1
email ×1
firefox ×1
greasemonkey ×1
hyperlink ×1
java ×1
jsf ×1
protractor ×1
selenium ×1
tabs ×1
tampermonkey ×1
url ×1