记一次需求完成的经过,要获取iframe中的元素,然后在页面进行分段跳转和相关操作,途中遇到了几个问题,方便后续自我回忆。

问题一  chrome扩展开发中 Popup页面无法持续保持的问题 【未解决】

这个需求感觉真的很广泛,即每次的Popup页面会随着失去焦点而关闭,再次打开后页面会回到初始页面,无法在页面中记录一些数据后失去焦点依然保持配置或选项。

查询了很多相关资料,有说监听Popup失去焦点事件的,有说直接让焦点事件不关闭的。目前该问题依然未能解决。后续通过网页中写视窗定位(position:fixed)的窗体加载元素来实现了界面构造。

问题二 chrome扩展开发中 iframe中的元素无法获取的问题

通过直接$(‘selector’) 的方式无法直接获得iframe中的元素

需要先根据ID 或者其他属性来获得对应iframe元素

var pdf_obj = document.getElementById('1').contentWindow.document.getElementById('pdf-viewer')

然后将该对象转换为jquery 对象  js和jq的互转方式如下

$('js_obj')                  //  通过用$()包裹直接将js转换为jq

$('selector')[0]          //  通过0下标直接转换为js对象

转换为jq对象后 即可进行scroll(), keydown()等事件的绑定和执行

问题三   有一些iframe中的元素一开始是没有加载好的,无法获取

这个问题需要等待加载完成后才能进行相关操作,通过设置定时器(interval)进行轮询获取。获取成功后,删除定时器。

var ele_check_timer = setInterval(function(){var pdf_obj = document.getElementById('1').contentWindow.document.getElementById('pdf-viewer');if (pdf_obj){ cleanInterval(ele_check_timer);do something; }}, 3000});

问题四  每次需要在chrome扩展文件夹中进行代码调试很麻烦

可以在谷歌浏览器中直接调试代码,按下f12后进入console即可输入代码进行调试。

省去了来回切换。一般网站中都内置了有jquery 如果没有Jquery可以尝试从其他网站中包含过来。

有些网站仅支持指定域名 可以尝试使用百度的cdn 原出处 @山岚_

;(function(d,s){d.body.appendChild(s=d.createElement('script')).src='https://libs.baidu.com/jquery/2.0.0/jquery.min.js'})(document);

问题五 控制台console操作正确但是就是不能获得元素?

有时候不小心因为其他的操作改变了当前页面后(即从top到了index或者其他页面)会一直无法获取元素,将如下位置设置回到到TOP即可。

问题六  轮询获取标签中 会有错误提示 如何让错误不显示?【未解决】

查询到可以通过 try语法来检测错误 但是使用后控制台没有错误提示,chrome开发中心依然一直有错误提示,没有找到问题的根源。

chrome 扩展开发 - 如何获得iframe中的元素 和 相关问题解答相关推荐

  1. Chrome扩展开发指南

    前言 Chrome 扩展(通常也叫插件)也是软件程序,使用 Web(HTML, CSS, and JavaScript)技术栈开发.允许用户自定义 Chrome 浏览体验.开发者可以通过增加特效或功能 ...

  2. chrome扩展开发(2)- manifest.json文件简述

    一.本文目标 结合具体应用场景,让读者对manifest.json文件的写法和主要属性拥有初步认识. 二.目标读者 chrome扩展开发的初学者,想要先从宏观上了解一下chrome扩展能干哪些事情,而 ...

  3. Chrome扩展开发基础教程(附HelloWorld)

    1 概述 Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档. 2 环境 Chrome 88.0.4324.96 Chromium 87.0.4280.141 B ...

  4. chrome扩展开发介绍和右键开发

    chrome扩展开发 chrome扩展中文文档官网 Chrome浏览器在全球都拥有可观的忠实用户,抛去其占据了浏览器市场的霸主地位不说,其具备了众多的优点,如良好的用户体验,简单的开发规范等等. 归纳 ...

  5. Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

     在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素  1. 格式:win ...

  6. 获取父窗口元素或者获取iframe中的元素(相同域名下)

    jquery方法 在父窗口中获取iframe中的元素 //方法1 $("#iframe的ID").contents().find("iframe中的元素");/ ...

  7. 用JS访问iframe中的元素

    用JS访问iframe中的元素 1.首先,如何访问iframe中的元素?见如下代码: (1)1.htm源码: <input  type=button value="test" ...

  8. java selenium iframe_java selenium处理Iframe中的元素示例

    java selenium  处理Iframe 中的元素 有时候我们定位元素的时候,发现怎么都定位不了. 这时候你需要查一查你要定位的元素是否在iframe里面 阅读目录 什么是iframe ifra ...

  9. js取iframe 上级页面_原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法...

    用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色 ...

最新文章

  1. 绩效考核如何才能突破上司的主观偏见局限?
  2. 噪声dba是什么单位_在职DBA : 工作多年为什么还是选择报读工商管理博士
  3. sox+linux查录音格式,linux-使用SOX和sox FAIL格式混合音频:无法打开输入文件`audio_recorded.wav’:WAVE:找不到RIFF标头...
  4. 弱口令扫描工具mysql ftp_基于端口的弱口令检测工具--iscan
  5. 计算机能做什么英语对话,计算机英语会话∣实用电脑英语
  6. Face++的技术面经历
  7. Windows Terminal 0.9 发布
  8. Vue中的scoped和scoped穿透
  9. html去除radio的样式,【HTML+CSS】纯CSS设置checkbox大小和样式 附Radio的去除默认样式和自定义样式...
  10. Facebook对memcached的提升
  11. SmartBear继SoapUI Pro 5 2之后推出新版本改名SoapUI NG Pro
  12. 如何使用SPSS进行判别分析
  13. UG二次开发 获得文档存盘历史
  14. 如何自定义快捷方式图标为自己的图片(保姆级教程)
  15. OpenCV-Python实现有参照物条件下的长方形物体尺寸推算(可实时、附源码)
  16. Process Hacker 简单介绍
  17. U盘文件全变快捷方式解决办法
  18. Mac 取消系统更新的红点——强迫症晚期患者
  19. 阿里音乐流行趋势预测大赛一起做-(6)小结
  20. 电脑安装Win10 + Linux 双系统

热门文章

  1. SMB签名的基础知识(同时覆盖SMB1和SMB2)
  2. mqtt发送cjson数据并解析
  3. 检索 - BM25 vs 语义向量
  4. python入门之一运算符与表达式:第一关正确写出表达式
  5. HCNP-路由交换:单臂路由、VLAN路由、VLANIF
  6. 哪吒壁纸来袭,教你不用PS也能制作哪吒1080P超清壁纸,你不看看
  7. linux下Redis服务器部署过程详解
  8. C语言中的time函数总结
  9. 大年读大学的时候因怀孕书写休学申请书
  10. 基于FreeCAD的dxf转机械手代码的一种实现方法