JavaScript-弹出窗口阻止程序问题
JavaScript - Pop up blocker issue
当我使用JavaScript单击一个较小的图像(SmallImage.gif)时,我正试图打开一个较大的图像(BigImage.png)。这是代码:
HTML
<td align="center"><a href="BigImage.png" onclick="OpenImage(this,event);" target="_blank"><img src="SmallImage.gif" width="196" height="131" border="0"></a></td>
JavaSript
function OpenImage(element,e)
{
e.preventDefault();
var img = new Image();
img.src = element.getAttribute("href");
img.onload = function(){
var left = (screen.width/2)-(img.width/2);
var top = (screen.height/2)-(img.height/2)-25;
var winWidth = img.width;
var winHeight = img.height;
var myWindow = window.open(img.src, "win1", 'height=' + winHeight + ', width=' + winWidth + ',left=' + left + ',top=' + top + ', location=0, toolbar=0, menubar=0, location=0, status=0, scrollbars=0, resizable=0');
if(!myWindow )
{
alert("Please allow Popup Blocker to open window and click the image again.");
}
};
}
当这段代码运行时,Google Chrome和Internet Explorer会调用弹出窗口阻止程序。我调用JS代码是直接点击的结果,不应该调用弹出窗口拦截器。为什么会发生这种情况,我该如何纠正这个问题?
谨致问候。
即使您在响应用户点击时打开它,它也会设置弹出窗口阻止程序的原因是您在img.onload中调用它,这是异步的,会导致弹出窗口阻止器显示。尝试从onload函数外部调用window.open,应该可以。
相关文章:
- Angular 1.X,webpack和ngtemplate加载程序问题
- JavaScript-弹出窗口阻止程序问题
- 引导程序问题
- 在 Ajax 调用中 Firefox 中的弹出窗口阻止程序问题已成功
- 蝙蝠侠.js新的应用程序问题
- 奇怪的chrome扩展程序问题:将iframe注入Gmail
- 未知提供程序错误 - AngularJS 应用程序问题
- JavaScript + HTML5 音频播放器 - 停止缓冲,事件处理程序问题
- 实时连接小程序问题
- 排查 Chrome 搜索扩展程序问题
- MVC3大型文件上传程序问题
- 单页web应用程序问题
- 点击事件处理程序问题
- jQuery冲突,可能存在引导程序问题
- Javascript机器人程序问题
- JavaScript提交处理程序问题
- 主干多个事件处理程序问题:同一事件只调用一个方法
- Highcharts标签格式化程序问题
- 多个ng应用程序问题
- 为.ctm文件创建并行.js文件的三个.js ctm加载程序问题's参考