首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript弹出窗口焦点问题

Javascript弹出窗口焦点问题
EN

Stack Overflow用户
提问于 2014-07-18 08:57:54
回答 2查看 7.5K关注 0票数 3

我想要创建一个“弹出窗口”,每次点击按钮时都能获得焦点。下面的函数从onclick事件中执行得很好,但在刷新父页并从onload事件执行时没有按预期执行。

这里是我的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function PopupDelete(delete_images)
{
    var win = window.open('URL','PopupDelete','width=500,height=400,scrollbars=yes');
    win.focus();
}

所以,如果我从下面的按钮中使用这个,它就会像预期的那样工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="button" name="delete" value="Images" class="smallbutton" onclick="PopupDelete(delete_images);">

现在我遇到的问题是,我们在按钮上使用另一个名为set_mode的方法,而不是直接调用PopupDelete函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function set_mode(mode) 
{
    document.MASTER.mode.value = mode;
    document.MASTER.submit();
}

<input type="button" name="delete" value="Images" class="smallbutton" onclick="set_mode('delete');">

它将主窗体中的模式设置为“删除”并提交该表单。登陆页与表单所在的页面相同。因此,它执行一些php验证,并在body标记中使用onload方法执行onload函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body onload='PopupDelete(delete_images)'>

如果没有弹出窗口打开,它可以正常工作,但如果弹出窗口已经打开并最小化,那么弹出窗口将无法获得焦点。有趣的是,它确实识别并更新了弹出窗口上呈现的内容,但不识别.focus()。

任何建议都将受到广泛的赞赏。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-13 13:28:02

在没有用户交互的情况下打开弹出式窗口和在没有用户交互的情况下聚焦弹出式窗口都是浏览器安全性的问题。另外,由于安全性是独立维护的,这是浏览器特有的。

如果用户已经接受显示阻塞的弹出窗口,则可以打开弹出窗口而无需用户交互。但是,允许弹出窗口不允许对任何弹出窗口对象调用focus方法。另一个,所以答案触及到了这个如果您想要更多的信息。

您可以使用以下代码处理此问题。加载页面不允许在Safari、Chrome或Firefox中打开弹出窗口(请记住,我是在mac上,所以windows浏览器的结果可能有所不同)。如果允许被阻止的弹出窗口,或者已经打开了以前访问站点的弹出窗口,那么该窗口将在所有3种浏览器中重新加载url。只有Safari允许在这个已经弹出的窗口上调用focus,而没有用户交互(onload),Chrome和火狐不允许。但是正如您可以看到的那样,单击focus按钮仍然可以将弹出式窗口聚焦到所有3种浏览器上,这表明这是可能的,但浏览器只是阻止了它。因此,从我可以看出,这是可能的,只有在Safari (再次记住,我还没有尝试IE)。但无论是哪种方式,我都不认为强迫你的用户使用特定的浏览器来正确地浏览你的网站是不好的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var w;

function PopupDelete(delete_images) {
    w = window.open('/testing/t/', 'PopupDelete', 'width=500,height=400,scrollbars=yes');
    console.log(w);
    w.focus();
}

$(function () {
    PopupDelete();

    $('#open').click(PopupDelete);
    $('#focus').click(function () {
        console.log('f', w);
        w.focus();
    });
});

演示

还请记住,即使您可以这样做,当您重新加载父窗口时,它是重新打开弹出窗口并替换前一个窗口(这是必须的,因为据我所知,您无法获得以前打开的窗口的window对象,因此没有办法在不重新打开它的情况下保持该变量的焦点)。所以这个弹出式窗口无论如何也不能保持它的完整性。我认为必须有更好的办法来完成这项任务。

票数 3
EN

Stack Overflow用户

发布于 2014-08-20 03:46:46

在页面加载中,可以显示此弹出窗口。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function () {
    window.open("URL","Hello","width=500,height=500,scrollbars=yes")
}); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24830249

复制
相关文章
nodejs接收微信支付通知结果
在统一下单中讲到了微信支付的统一下单,统一下单完成后就是客户端的事情了,根据返回的信息来调起微信支付,完成付款。当付款完成后,微信服务器会post支付结果通知我们,此接口需要单独来写,并且需要按照微信文档的要求来返回数据。
OECOM
2020/07/01
1.6K0
随机模拟和统计主要结果分析命令
本期分享的这份大表格相当的复杂,整理起来费了点时间,但总算是对概率和统计回归的常用命令勾勒出大致框架。里面的有限函数开起来稍微有点陌生
巴山学长
2020/11/26
5950
nodejs的dns解析源码分析
我们根据沿着这个例子的代码看一下nodejs的dns过程。我们先看一下dns.js里的lookup函数,下面是核心代码。
theanarkh
2019/03/15
4.6K0
未知攻,焉知防?——DDoS攻击方法之分析
P.S:绿盟科技的同学继续带来图文并茂的精彩技术科普: 世界杯盛宴,牵动着无数小伙伴的心,各种进攻战术惊心动魄,惊喜不断;而在网络世界,DDoS攻击亦是来势汹汹,但它带来的不是激动、不是振奋,而是破坏
FB客服
2018/02/02
1.8K0
未知攻,焉知防?——DDoS攻击方法之分析
孙权的DICS测试结果和瑜亮的数据分析
注:本文内容不涉正史,仅以《三国演义》为准。 DICS测试 DICS测验是有一种人格/个性测试,用于测查、评估人们的行为方式、人际关系、工作绩效、团队合作、领导风格等。共分为四个象限:D:Dominance(支配型), I:Influence(影响型), C:Compliance(分析型), 和S:Steadiness(稳定型)。被测者经过一系列考察(多通过答题进行)后,每个象限分别得到一个分数,分数最高的一到两个象限被用于描述该人人格,e.g.D象限得分最高,则可被成为highD,D和I得分接近而明显高于
叶锦鲤
2018/03/15
1.3K0
孙权的DICS测试结果和瑜亮的数据分析
nodejs的引用和导出
正如我们想的那样,nodejs每次只能运行一个js脚本,所以如果想运行多个js脚本可以采用引用(require)的方式
是小张啊喂
2021/08/10
7310
细胞通讯分析结果的解读
不过,虽然细胞通讯分析越来越普通,但它的难度并不会降低,在试图学习这个分析方法之前,大家需要自己提前了解一下:细胞通讯分析的背景知识,而且呢,还得看看细胞通讯分析的实例,多读文献,总归是没有错的!
生信技能树
2020/12/17
2.9K0
nodejs的引用和导出
正如我们想的那样,nodejs每次只能运行一个js脚本,所以如果想运行多个js脚本可以采用引用(require)的方式
是小张啊喂
2021/06/24
6290
面对未知服务器问题的选择和思考
今天上班看到备份机的负载高得惊人,达到了几百倍的负载,然后就开始排查问题,因为前几天大概看了下,我们锁所做的事情还是很有限的,就算动用重启大法也是收效甚微,忙忙碌碌一早上,好像进展也不大,不由得感叹,这种被动的处理问题的方式好像也没有多少技术含量,整体在忙啥。
jeanron100
2020/04/15
6640
面对未知服务器问题的选择和思考
通过源码分析nodejs的进程架构
我们知道nodejs是单进程(单线程)的,但是nodejs也为用户实现了多进程的能力,下面我们看一下nodejs里多进程的架构是怎么样的。 nodejs提供同步和异步创建进程的方式。我们首先看一下异步的方式,nodejs创建进程的方式由很多种。但是归根到底是通过spawn函数。所以我们从这个函数开始,看一下整个流程。
theanarkh
2020/03/31
6700
通过源码分析nodejs的进程架构
分析攻击结果?网络攻击溯源和取证
网络攻击的溯源和取证是指通过分析和调查,确定网络攻击的来源和确切证据,以便采取相应的行动,例如对攻击者提起诉讼或采取技术措施防范类似攻击。这个过程一般包括以下步骤:
夏洛斯攻防实验室
2023/02/19
1.9K0
分析攻击结果?网络攻击溯源和取证
Nodejs相关ORM框架分析
写这篇blog的原因,想找个node的ORM框架用用,确很难找到一篇对比分析这些ORM框架的文章,唯一找到了一篇,居然是通过star数来论英雄,我觉着很难服众,于是就找几个看看。后来又不想分析,因为我发现node这种野蛮生长,滋生这些ORM轮子比比皆是,远比我想象的多;后来又觉着可以写,作为一个java出身业余研究node的就想通过java的ORM框架来洞悉node这群ORM框架的是非曲直,于是挑了几个框架小扯一篇。
coder2028
2022/10/17
1.3K0
运行结果分析相关
一般方式也是最基本的方法是按照一定的规则压并发,看日志。专业一点的说法可以说“分段排除法“,或者按照以下顺序查找瓶颈。
张树臣
2019/07/31
9830
nodejs源码分析之线程
我们先分析一下这个代码的意思。因为上面的代码在主线程和子线程都会被执行一遍。所以首先通过isMainThread判断当前是主线程还是子线程。主线程的话,就创建一个子线程,然后监听子线程发过来的消息。子线程的话,首先执行业务相关的代码,还可以监听主线程传过来的消息。下面我们开始分析源码。分析完,会对上面的代码有更多的理解。 首先我们从worker_threads模块开始分析。这是一个c++模块。我们看一下他导出的功能。require("work_threads")的时候就是引用了InitWorker函数导出的功能。
theanarkh
2020/08/10
7400
nodejs源码分析之线程
长度未知的数组大小
malloc 和 calloc都可以被用于申请堆上的空间。 malloc 和 calloc主要有两点不同:
小飞侠xp
2021/04/13
2.5K0
nodejs之setImmediate源码分析
从上面的代码中我们知道,调用setImmediate函数后,nodejs会把回调和参数存在一个队列里。等待回调。然后处理队列里的每个节点。下面我们看一下处理函数的代码。
theanarkh
2019/03/19
9420
NodeJS和ReactJS,VUEJS的关系
网上找的科普贴,整理了一下发给大家,出处见底部链接。有许多类比的例子不太准确,大家参考下就行。
浩Coding
2019/08/26
6.2K0
NodeJS和ReactJS,VUEJS的关系
nodejs源码分析之connect
今天我们来分析connect函数。connect是发起tcp连接的api。本质上是对底层tcp协议connect函数的封装。我们看一下nodejs里做了什么事情。我们首先看一下connect函数的入口定义。
theanarkh
2020/07/27
7840
nodejs可读流源码分析
可读流是对数据消费的抽象,nodejs中可读流有两种工作模式:流式和暂停式,流式就是有数据的时候就会触发回调,并且把数据传给回调,暂停式就是需要用户自己手动执行读取的操作。我们通过源码去了解一下可读流实现的一些逻辑。因为实现的代码比较多,逻辑也比较绕,本文只分析一些主要的逻辑,有兴趣的可以参考文档或者自行深入看源码了解细节。我们先看一下ReadableState,这个对象是表示可读流的一些状态和属性的。
theanarkh
2020/07/22
8750
点击加载更多

相似问题

nodejs分析;什么可以是“未知的”

32

nodejs服务器脚本未知结果

10

分析未知结构和容错的表

10

未知策略"local",nodejs和passport

12

基准分析并显示分析和基准的结果?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文