目标 当前页面需要与当前浏览器已打开的的某个tab页通信,完成某些交互.其中,与当前页面待通信的tab页可以是与当前页面同域(相同的协议.域名和端口),也可以是跨域的. 要实现这个特殊的功能,单单使用HTML5的相关特性是无法完成的,需要有更加巧妙的设计. 畅想 现在我们发现下思维,假设多种场景下的解决方案,最终寻找通用解. case 1 两个需要交互的tab页面具有依赖关系. 如 A页面中通过JavaScript的window.open打开B页面,或者B页面通过iframe嵌入至A页面,此种情…
问题概述: 公司做的是BS应用. 之前我们的后台服务器程序是带状态的,用ehcache存储登录状态:这两天被我改成了redis存储,应用本身不再存储登录状态. 然后自测,我在测试某个很耗时间的网页操作的时候,发现第一次请求的时候还比较快(这个请求会开200个iframe出来,每个iframe内部还有2个ajax请求)(期间浏览器会向服务器发送了大概600个请求),耗时1分钟内: 然后第二次请求的时候,发现很多请求一直处于pending状态(chrome的开发者工具可以看),等待很久也出不来页面,…
一.Puppeteer切换浏览器TAB页 1.browser.pages() 二.上手实例Demo 功能测试:打开www.ly.com首页,定位搜索"苏州",获取新打开页面上的搜索结果的第一个名称,并在终端输出打印出来.下面列举了两种方法供参考. const puppeteer = require('puppeteer'); async function tab() { //创建一个Browser浏览器实例,并设置相关参数 const browser = await puppeteer…
如今,基于Web版的Office 在线预览与编辑功能已成为一种趋势,而关于该技术的实现却成为了国内大部份公司的技术挑战,挑战主要存在于两方面: 其一:目前国内乃至微软本身,还没有相对较为完善的解决方案 其二:对于开发人员来说,可查询资料甚少,即使FQ,资料也甚少 基于如上的难点与挑战,国内规模相对较大的公司就选择了SharePoint 的Office在线编辑功能,然而SharePoint 笨重,且对服务器要求高,除此之外,当前国际市场SharePoint技术 开发人员较少,招聘成本大. 基于如上…
原文链接:https://bobbyhadz.com/blog/react-handle-tab-close-event 作者:Borislav Hadzhiev 正文从这开始~ 总览 在React中,处理浏览器tab页关闭事件: 使用useEffect钩子添加事件监听器. 监听beforeunload事件. 在即将卸载tab页时,会触发beforeunload事件. import {useEffect} from 'react'; const App = () => { useEffect((…
Web跨域已是老生常谈的话题,这次来尝试下跨域浏览器进程之间的通信 —— 这在过去基本依靠网络中转实现   在之前一篇文章里尝试了跨浏览器的数据共享,最后提到使用LocalConnection还可以实现跨浏览器消息交互的可行性. 花了两个晚上简略的研究了下,LocalConnection的单向通信非常的简单,不过要实现多个终端交互,必须自己实现一套消息机制,见智见仁了. 为了简单演示,本例使用了基于广播的观察者模式:每个终端可以订阅自己感兴趣的主题,也可以向广播发送消息,通知其他感兴趣的终端.…
BS结构的程序,如果要与IC卡读卡器通信本身就是件不容易解决的事情.微软的activex ocx技术将这种应用限制在IE浏览器上了,不兼容其它的浏览器.而Chrome使用插件也不兼容IE和其他的浏览器,那如何才能有效地让IC卡读卡器做到与web浏览器无关呢. 北京友我科技发布的称之为IC卡读卡器云服务的技术有效地解决了这种兼容性,使得IC卡读卡器可以在IE,Chrome,Firefox,safari, Opera浏览器上使用,而不用做任何更改. 支持这种跨浏览器的IC卡读卡器型号有:YW-605…
一.问题描述 使用easyui搭建的上左右页面布局,当我们在右侧打开了tab页,发现点击浏览器的刷新按钮后,整个页面会被重新渲染,导致所有打开的tab页都被关闭,回到初始状态的问题. 这个问题虽然不影响业务,但对用户操作造成了一定的困扰.因为浏览器刷新后,tab页全部被关闭,那么用户又需要打开刚才正在使用的tab页,甚至有可能,用户会忘记打开过哪些tab页. 二.解决思路 因为浏览器刷新后,页面重新渲染,所有tab页都不存在了,其实并不是关闭了tab,只是页面回到了初始状态.所以要解决这个问题,…
//监听浏览器tab切换,以便在tab切换之后,页面隐藏的时候,把弹幕停止 document.addEventListener('webkitvisibilitychange', function() { if (document.hidden === true) { //页面已隐藏 } else { //页面显示 } }, false); 可参考: https://developer.mozilla.org/zh-CN/docs/Web/Guide/User_experience/Using_…
js事件注册代码: <script> document.addEventListener('visibilitychange',function(){ //浏览器tab切换监听事件 if(document.visibilityState=='visible') { //状态判断:显示(切换到当前页面) // 切换到页面执行事件 var normal_title=document.title; //title标签的内容 alert(normal_title); }else if(document…
作者:Philip Walton 译者:Yeaseon 原文链接:点此查看 译文仅供个人学习,不用于任何形式商业目的,转载请注明原作者.文章来源.翻译作者及链接,版权归原文作者所有. ___ 我们都知道在多个浏览器中测试我们的代码是多么的重要.至少在我们发布第一个项目的时候,我认为我们在网络开发社区做大部分工作还是相当不错的. 我们做的不够好的工作是测试代码时每一次做出的改变. 我个人对此感到很惭愧.我已经把"学习如何构建自动化.跨浏览器的JavaScript的单元测试"列在我的年度t…
div:nth-of-type(odd){ float: left; clear: left; } .origin-effect > div:nth-of-type(even){ float: right; clear: right; } .clearfix:after{ content: ""; display:block; clear: both; } .figcaption{ clear: both; color: #999; padding-top: 10px; text…
大家都知道,我们打开一堆文件夹的时候,是什么样子 “厚厚的一叠”图标堆叠在一起的,非常的不方便 那么,是不是可以像浏览器一样的tab页面展示呢? 答案是可以的 安装好就是这样子的 是不是方便漂亮了很多呢? 软件名字,clover,请自行百度 软件名字,clover,请自行百度 软件名字,clover,请自行百度 重要的事情说三遍! 贴一下官方的介绍: Clover 是 Windows Explorer 资源管理器的一个扩展,为其增加类似谷歌 Chrome 浏览器的多标签页功能. 方便的 Tab…
<video width="320" height="240" controls>   <source src="movie.mp4" type="video/mp4" poster="img/封面.jpg">   <source src="movie.ogg" type="video/ogg" poster="img/封面.j…
Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid App为什么会兴起编辑 1 1.2. 如何实现网页语言与程序语言的混合编辑 2 1.2.1. 多View混合型 2 1.2.2. 单View混合型 2 1.2.3. Web主体型 2 1.3. Hybrid App的瓶颈与未来编辑 3 2. Web App.Hybrid App.Native APP对比…
有些时候,我们希望让用户在网页上完成某个操作就能自动将指定的内容复制到用户计算机的剪贴板中.但是出于安全原因,大多数现代浏览器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用).只有IE浏览器可以通过如下方式来进行复制. window.clipboardData.setData("Text", "这里是需要复制的文本内容") 想要实现跨浏览器的复制功能,我们就可以使用 ZeroClipboard. ZeroClipboard 及其原理介绍 ZeroClipboa…
谷歌Chrome浏览器突然不打开任何网页,无论是任何站点(如http://www.baidu.com), 还是Chrome浏览器的设置页面(chrome://settings/), 扩展页面 ( chrome://extensions/ ) ,  所有其他浏览器(如IE浏览器,Mozilla Firefox浏览器等)很好地工作. 这可能是由于恶意软件/病毒破坏谷歌Chrome浏览器的设置,并危及其首选项文件. 具体而言,以下问题 - 症状当您试图打开谷歌Chrome浏览器出现: 如何解决和修复C…
开发中经常会用到复制的功能,在 IE 下实现比较简单,但要想做到跨浏览器比较困难了. 本文将介绍一个跨浏览器的库类 Zero Clipboard ,它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的 document.execCommand("Copy") 更加灵活. Zero Clipboard 的实现原理 Zero Clipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash…
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏览器或不同版本浏览器上,我们的web应用是否可以正常工作. browser.png 下面我们看看怎么利用python selenium进行自动化的跨浏览器测试. 什么是跨浏览器测试 跨浏览器测试是功能测试的一个分支,用以验证web应用能在不同的浏览器上正常工作. 为什么需要跨浏览器测试 通常情况下,…
前言:之前发表过一篇  JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有) ,收到很多园友的反馈,当然也包括很多诟病,因为上篇只是将功能实现了,很多细节都没有处理,这篇博主将带领大家一起来优化这里的效果,使之成为一个可以在项目里面使用的成品. 说点题外话,本来,在互联网模式下,Tab页+iframe的组合是不能被大多数平台接受的,从这些年推出的一些好的产品可以看出,几乎大家都不这么玩,即使是一些后台的管理模板,比如常见的AdminLTE.Ace.INSPIN…
关于selenium WebDriver 对浏览器标签页的切换,现在的市面上最新的浏览器,当点击一个链接打开一个新的页面都是在浏览器中打开一个标签页,而selenium只能对窗口进行切换的方法,只能操作,无法直观的看到页面.后来我想到selenium里的接口Actions可以模拟键盘操作,而点击键盘中的”Ctrl+Tab”组合键正好可以切换浏览器的标签页,只要将如下代码放在要操作的标签页前就可,如果有多个标签页,就多执行几次. 代码如下: import org.openqa.selenium.K…
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏览器或不同版本浏览器上,我们的web应用是否可以正常工作. 下面我们看看怎么利用python selenium进行自动化的跨浏览器测试. 什么是跨浏览器测试 跨浏览器测试是功能测试的一个分支,用以验证web应用能在不同的浏览器上正常工作. 为什么需要跨浏览器测试 通常情况下,我们都期望web类应用能…
本文为博主原创,未经允许,不得转载: 在两个tab页中,分别展现了两个echart图表,同样的格式与写法,但只有在默认选中的tab页中的图表显示的是正常的, 但进入另一个tab页中时,图表则产生了变形的问题,如下图所示: 在网上查了很多,有各种方法,尝试之后也并没有改变变形的问题, 终极原因是在页面进行加载时,隐藏的图表找不到对应的div大小,所以默认给了一个大小.所以要做的就是在页面加载时, 就对图表进行初始化. 用到的方法如下: <ul id="myTab" class=&q…
如何解决谷歌Chrome浏览器空白页的问题   谷歌Chrome浏览器突然不打开任何网页,无论是任何站点(如http://www.baidu.com), 还是Chrome浏览器的设置页面(chrome://settings/), 扩展页面 ( chrome://extensions/ ) ,  所有其他浏览器(如IE浏览器,Mozilla Firefox浏览器等)很好地工作. 这可能是由于恶意软件/病毒破坏谷歌Chrome浏览器的设置,并危及其首选项文件. 具体而言,以下问题 - 症状当您试图打…
发生背景: 跨浏览器测试是功能测试的一个分支,用以验证web应用在不同浏览器上的正常工作,通常情况下,我们都期望web类应用能够被我们的用户在任何浏览器上使用,例如有的人喜欢IE浏览器上使用,有的人喜欢firefox或者有的人喜欢Chrome.我们期望系统在任何浏览器上正常使用可以吸引更多的用户来使用. 问题根源: 需要我们跨浏览器测试的根源是: 1.web不同和css样式在不同浏览器中显示结果是不一样的:(非常让前段开发头疼的ie一直伴随这windows这么些年) 2.javascrpt在不同…
我的web站点,比如  http://ip/testsite/default.aspx, 当我在我的机器上,用chrome打开,用账号user1登陆,那么当我再新开个tab,再打开这个web站点,这时显示的还是user1登陆着.我想在chrome里面用另一个账号user2登陆,那么只能是退出user1,再用user2登陆.也就是在同一个浏览器里,同一时间只能一个账号登陆. 而同一时间,在不同的浏览器里,比如一个是chrome, 一个是firefox,分别用user1和user2登陆,这样是可行的…
jQuery是一个兼容多浏览器的js库,核心理念是write less,do more(写的更少,做的更多),jQuery使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX交互. 自己用到的一个主页多标签的小例子,用户登录后显示自己的相应菜单和我的主页. 代码如下: 1 <div id="right" class="content_right"> 2 <div id="line&qu…
脚 本 之 家 www.jb51.net 脚本云 专题 素材下载 电子书 软件下载 源码下载 服务器常用软件 a5交易 首页 网页制作 脚本专栏 脚本下载 网络编程 数据库 CMS教程 电子书籍 平面设计 媒体动画 操作系统 网站运营 网络安全   YUI.Ext相关 prototype jquery dojo json lib_js js面向对象 extjs Mootools Seajs 其它   特色栏目: vbscript 正则表达式 javascript 批处理 服务器软件 素材下载  …
我发现tab页中<script src="xxx.js">方式加载的脚本没有生效,firebug看请求也没有请求相应的脚本文件. 单独在浏览器中打开tab页中的页面js脚本请求和加载都没有问题. 之前还以为是诡异的缓存原因,查了资料才知道tab页中加载的是html片段,也就是body中的部分,写在head中的内容会在解析中被过滤掉. 然后把<script src="xx.js">挪到body中,问题就解决了.…
今天群里讨论了一个问题,如何将selenium的操作焦点切换到浏览器中新弹出来的Tab页中,正好对应到了昨天的那篇文章“小技巧之在浏览器中打开新的页签”.今天就带大家来解决这个问题: 先封装一个Tab页切换的方法 思路是先把全部已经打开的窗口的句柄丢到一个集合中,然后取出来当前焦点所在的句柄,从集合中提出当前句柄,然后再切换到下一个句柄就可以了,切换到新Tab页后,就可以用webdriver进行后续的页面操作了,怎么样这个思路你学会了吗? 转自 楼老师 自动化软件测试…