使用onclick事件关闭JavaScript窗口
Closing a JavaScript window with an onclick event
我们必须制作一个打开新窗口的JavaScript,然后您需要能够在窗口内点击再次关闭它。但我的代码不起作用,有人能给我一个最好的答案吗?
function swipe() {
var largeImage = document.getElementById('largeImage');
var url = largeImage.getAttribute('src');
var w = largeImage.naturalWidth;
var h = largeImage.naturalHeight;
window.open(url,"Image", "height="+ h +", width="+ w +", resizable=yes");
var myWindow = window.self;
myWindow.addEventListener("click", clickHandler);
var elementIsClicked = false;
function clickHandler(){
elementIsClicked = true
}
function isElementClicked (){
if(elementIsClicked){
newWindow.close();
}
}
setInterval(isElementClicked, 500);
}
一条注释说newWindow
在任何地方都没有定义。我想你是想用myWindow
对象。myWindow.close()
将工作,因为它会关闭窗口。
如果你想在第一次加载时执行这个,你应该把它放在window.onload
函数或自调用函数中。此外,为了在所有浏览器中实现完全兼容性,您应该省略resizable=yes
部分,因为只有IE支持它。
此外,如果要使用jQuery,可以在$(window).load()
函数中执行此方法。
您可以使用document.write()
window.onload = function() {
var largeImage = document.getElementById("largeImage");
// var url = largeImage.getAttribute('src');
var w = largeImage.naturalWidth;
var h = largeImage.naturalHeight;
// open blank `window`
var popup = window.open("", "Image"
, "height="+ h
+", width="+ w
+", resizable=yes");
// write `img` `outerHTML` to `popup` `window`
popup.document.write(largeImage.outerHTML);
window.onclick = function() {
// close `popup`
popup.document.write("<script>this.close()<'/script>");
// remove `onclick` handler
this.onclick = null;
}
}
plnkrhttp://plnkr.co/edit/0KUPw3UlEF0ONO1vDoOU?p=preview
var newWindow;
function windowOpener() {
var url = "http://stackoverflow.com/questions/36387144/closing-a-javascript-window-with-an-onclick-event";
newWindow = window.open(url, "Popup", "width=700,height=500");
var timer = setInterval(function() {
if (newWindow.closed) {
alert("window closed");
clearInterval(timer);
}
}, 250)
}
<button onclick="windowOpener();">Open a window</button>
这是打开和检测它何时关闭的代码。
这是codepen.io上的示例代码http://codepen.io/sujeetkrjaiswal/pen/vGebqy
由于某种原因,代码没有在stackoverflow中运行,请在codepen上尝试。
感谢大家的回答。以下是我的问题的解决方案:
function swipe() {
var largeImage = document.getElementById('largeImage');
var url = largeImage.getAttribute('src');
var w = largeImage.naturalWidth;
var h = largeImage.naturalHeight;
var popup = window.open(url,"Image", "height="+ h +", width="+ w +", resizable=yes");
popup.document.write('<img src="women_running_small.jpg" id="largeImage" style="width:95% ;height:95%; object-fit:contain"/>');
popup.onclick = function() {
// close `popup`
popup.document.write("<script>this.close()<'/script>");
// remove `onclick` handler
this.onclick = null;
}
}
相关文章:
- Javascript窗口.打开令人困惑的参数
- javascript窗口打开并添加参数
- JavaScript窗口按比例调整大小
- Javascript窗口.open中的UTF8字符串将被UIWebview's应该启动LoadWithReque
- JavaScript窗口.位置不;我不在内容编辑器Web部件中工作
- Javascript窗口弹出
- Javascript窗口.open不工作
- 在新服务器上未打开JavaScript窗口
- SeleniumIDE自动化似乎打破了JavaScript窗口
- JavaScript窗口位置延迟
- 使用onclick事件关闭JavaScript窗口
- 在没有额外功能的所有现代浏览器中居中显示JavaScript窗口
- 如何在启动之前引用javascript窗口元素
- 将文本框数据传递到JavaScript窗口.location.href
- Javascript窗口/图像加载时间 - 这应该不起作用,但它确实有效
- JavaScript 窗口['func'],参数返回 undefined 而不是函数
- 传递 PHP 变量 JavaScript 窗口位置
- 媒体查询和 JavaScript 窗口调整不同的宽度
- 延迟关闭 JavaScript 窗口
- JavaScript窗口重定向不会启动