chrome浏览器插件content_scripts无法调用iframe下的元素,求大神帮忙。

现在想搞一个插件,可以实现页面的自动点击,结果发现这个网页包含一个iframe的,具体以下代码:
主页面代码:

 <html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>开通业务确认</title>
<link rel="stylesheet" href="/page/swcl/css/easyui.css" type="text/css" media="screen">
<script src="/page/swcl/js/jquery.min.js"></script>
<script src="/page/cm/js/jquery.easyui.min.js"></script>
<script src="/page/swcl/platform/js/easyui-lang-zh_CN.js"></script>
<script src="/page/swcl/sunshine/js/clipboard.min.js"></script>
<script src="/page/swcl/sunshine/js/migu.js"></script>
<script>
var urlPrefix = "";
var errorMsg="";
var memberType=parseInt("0");
var netId="ba1b41f7e0634a2a997c8d071651704d";
var authId="e9419cd15c484e28af5f8774abec49b1";

var openBizOrder = {};
openBizOrder.netId="ba1b41f7e0634a2a997c8d071651704d";
openBizOrder.authId="e9419cd15c484e28af5f8774abec49b1";
openBizOrder.productionId="698039020020006005";
openBizOrder.price=parseInt("500");
openBizOrder.channelId="014Z020";
openBizOrder.orderId="0120520171116299428725";

var openBizOrderDesc="欢迎开通中国移动咪咕音乐企业彩铃功能业务";

var isMutiOrder = "false";
if(isMutiOrder=="true"){
    var nextOpenBizOrder = {};
    nextOpenBizOrder.netId="";
    nextOpenBizOrder.authId="";
    nextOpenBizOrder.productionId="";
    nextOpenBizOrder.price=parseInt("");
    nextOpenBizOrder.channelId="";
    nextOpenBizOrder.orderId="";

    var nextOpenBizOrderDesc="";
}

var h5AppUrl = "";

</script>
<script src="/page/swcl/sunshine/js/openBizConfirm2.js"></script>
<script id="h5AppUrl" data="" type="text/javascript"></script>
</head>
<body>


<div id="payDetailTag" style="background: rgb(255, 255, 255); position: fixed; z-index: 1000; left: 0px; top: 0px; display: block; -webkit-box-align: center; align-items: center; width: 100%; height: 100%;"><div style="width: 100%; display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: -moz-flex; -webkit-box-pack: center;  -ms-flex-pack: center; -webkit-justify-content: center; -moz-justify-content: center; justify-content: center; text-align: center; height: 100%"><iframe id="frame" src="http://223.111.8.142:8080/migunetsdk/webJs/frame.html?netId=ba1b41f7e0634a2a997c8d071651704d&amp;umark=Common&amp;client=WAP" name="__migu_web_pay_frame" class="miguframe" style="position: absolute; top: 0; left: 0; border: 0; width: 100%; height: 100%;"></iframe></div><div id="payInfo" style="display: block;position:fixed;top: 0;left: 0;z-index: -1;text-align: center;width: 100%;height: 100%;background: #dedede;font-family: 微软雅黑;color: rgb(78, 78, 78);line-height:45px;font-size:1.525em;">欢迎开通中国移动咪咕音乐企业彩铃功能业务</div></div></body></html>

iframe页面的代码

 <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' http://wsdkdl.migu.cn:8080"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><link rel="stylesheet" type="text/css" href="http://wsdkdl.migu.cn:8080/music/Common/style.css?v=3d1thl8Ih4sFTxA3_IbMQ1"></head><body><script>var __url_res='http://wsdkdl.migu.cn:8080/music/Common';var __url_bin='http://wsdkdl.migu.cn:8080/ba1b41f7e0634a2a997c8d071651704d/1510773427830/netsdk_b.bin?v=3d1thl8Ih4sFTxA3_IbMQ1';var __s='e3e9adea218c4d4f9d535fc966d6170a';window.parent.postMessage('{"msgtype": "init2", "__s":"'+__s+'"}', '*');</script><script crossorigin="" src="http://wsdkdl.migu.cn:8080/ba1b41f7e0634a2a997c8d071651704d/1510773427830/netsdk_b.js?v=3d1thl8Ih4sFTxA3_IbMQ1"></script>
<div id="payLoginTag" class="payLoginTag"><div class="payLogin"><div class="payLogo"><img src="http://wsdkdl.migu.cn:8080/music/Common/img/pay_logo_ear.gif"></div></div></div><div class="payDetail onkey" id="payDetail"><div class="close"><a href="javascript:;"><img src="http://wsdkdl.migu.cn:8080/music/Common/img/closeNavBtn_m.png" id="close"></a></div><div class="content"><div class="payName">包月费用:<span id="fee">¥5.00</span></div><div class="notice"><span id="notice">请输入手机号码及验证码,完成支付</span></div><div class="payInfo"><p>支付号码:<span class="payPhone" id="payPhone">183****7771</span></p></div><div class="okPay"><a href="javascript:;" id="okPay">确认支付</a></div><div class="footer onekeyFooter"><div class="footerImg"><img src="http://wsdkdl.migu.cn:8080/music/Common/img/bottom.png" id="discribe" class="top"></div><div class="logo"><img src="http://wsdkdl.migu.cn:8080/music/Common/img/migu-logo.png" class="migulogo" id="logo"></div><div class="clear"></div><div class="describe" id="detailInfo"><p>本支付由中国移动咪咕文化提供,付费金额将从您的话费中扣除。</p></div></div></div></div></body></html>

我要提取到iframe中的一个a元素,
现在在content_scripts的js中直接写var okPay = document.getElementById("okPay");得到的却是null。在mainifest.json中也配置了js在iframe中应用,{
"matches": ["http://211.137.107.18:8888/cm/*","http://223.111.8.142:8080/migunetsdk/webJs/*"],
"js": ["js/myscript2.js"],
"all_frames":true
}。希望大神们能帮忙看看,怎么解决。

2个回答

没咋明白 应该是权限的问题把

jzlkf
jzlkf 已经配置"all_frames":true,这个了。现在就是在iframe下面取a元素的时候就是null
接近 2 年之前 回复
chenxiansheng888
小刀有话说 回复jzlkf: http://blog.allenm.me/2010/11/chrome-extension-cannot-read-iframe/ 试试这个
接近 2 年之前 回复
jzlkf
jzlkf 权限配置已经在mainifest中配置了,"permissions": [ "tabs", "https://*/", "http://*/*", "webRequest", "webRequestBlocking" ]
接近 2 年之前 回复

这个是跨域访问,chrome不允许的
一种解决思路是把content脚本除了注入到主页面,同时也注册另一个content脚本到iframe指向的页面,并且在两个脚本间进行消息传递
另一种思路更粗暴些,可以搜索一下“chrome 设置 跨域“,直接设置允许跨域访问

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
chrome跨域访问iframe的元素
chrome跨域访问iframe的元素
Chrome浏览器插件
Infinity新标签页
chrome浏览器插件
chrome浏览器插件 生活类 1.adblock (网页广告过滤,眼不见广告,心不烦) 2.Adkill and Media Download (针对视频广告过滤) PS:部分视频有效。 3.保护眼睛 (护眼必备) 4.划词翻译 (各种翻译工具的集合) 5.图片搜索 (多搜索引擎以图搜图工具) 6.Allow Copy (破解网页无法复制)
Chrome 浏览器插件
  1.Google 快速搜索插件     http://code.google.com/p/chrome-quick-search/    2.Google任务     http://www.chromeextensions.org/other/google-tasks/  
Chrome扩展之content_scripts的执行时刻???
rnmanifest.json文件的内容如下:rnrnrn "name": "我的扩展",rn "version": "1.0",rn "description": "测试使用",rn "content_scripts": [rn rn "matches": ["http://*"],rn "js": ["myContentScript.js"]rn rn ]rnrnrn当打开一个网页时,myContentScript.js是什么时间执行的?它能改变DOM结构,应该是DOM加载完成之后才执行吧!rnrn我用脚本删除广告,成功了,但是广告是出现后又被删除的!rnrn但 Ad Block Plus 过滤的广告根本不会在页面上出现,它是如何做到了呢?难道它是先对获取的页面源码进行过滤,再加载DOM结构?rnrn
Axure浏览器插件(chrome for mac )
mac下的chrome浏览器,支持Axure,需要拖入chrome://extensions/
chrome谷歌浏览器插件
谷歌浏览器代理设置、谷歌浏览器websocket以及谷歌浏览器启动网页修改。
做一个自己的chrome浏览器插件
因为前段时间听室友说chrome没有拖拽选中文字自动搜索的功能,于是我突发奇想,响应毛主席的号召,自己动手,丰衣足食,于是很自然地想到了chrome的插件,花了一天时间了解了下chrome插件的工作原理,并写了下面这个简单的插件。有点遗憾的是这个插件只能实现选中文字,松开鼠标自动搜索的功能。 这是成品: 效果图: 好了,下面我结合自己的理解,以最简单明了的方式带大家写一个自己的插件
angular调试 chrome浏览器插件
支持最新版angular2+, 目前Aungury1.4版本. 打包完毕,拖拽到chrome扩展程序中使用即可.
几个Chrome浏览器插件
个人常用,只代表个人观点 谷歌访问助手 访问谷歌的扩展工具网上商店时必须(翻墙的除外),下载。 xmarks 浏览器书签同步工具,可以多个浏览器之间相互合并管理等,可官网下载(百度xmarks),也可在谷歌应用商店下载。 划词翻译 阅读英文时很方便的在线翻译工具,谷歌应用商店下载。 Postman 本地URL测试工具,能够和Chrome共享session。 开发工具箱 一个小工具箱...
chrome浏览器插件,批量下图
chrome浏览器的网页批量下图插件,亲测有效,办公好帮手!
chrome浏览器插件基本开发
可以说浏览器正是由于插件的支持,使其功能变得强大和丰富多彩。其实我们也可以根据自己的需要来设计浏览器插件,从而满足自己的需要。下面小编就以Chrome插件(应用)开发为例,给大家简单的讲解一下具体的设计方法。 方法/步骤 首先,我们创建一个文件夹,用于存在Chrome应用(扩展)所需要的所有文件。并在该文件夹中存放三个文件
chrome浏览器插件推荐
Ghelper 首先第一步肯定是科学上网,搜索Ghelper之后,下载并解压。点击Chrome浏览器右上角三个点,点击更多工具,点击扩展程序,打开开发者模式,点击加载已解压的扩展程序,点击解压后的文件夹即可,这时,右上角会出现一个图标,点击注册即可。可能发的验证邮件是在垃圾箱中。 Ghelper下载链接 MarkDown Here 简单来说,这个软件可以让你在任何地方使用markdown语法来编辑...
ss浏览器插件(chrome)
请解压后使用, 请解压后使用, 请解压后使用, 请解压后使用, 请解压后使用
chrome浏览器插件伴侣
Chrome 最新版并不支持传统的拖拽方式安装扩展,是为了安全。而在 67 版本之前是可以随意安装的。 如果嫌麻烦,那么可以试试这款“Chrome 插件伴侣”,只需要运行、加载 .crx,点击开始安装,就可以了。不过注意,Chrome 插件伴侣 默认安装的扩展会被禁用,需要前往扩展程序(chrome://extensions/)页面开启。
Chrome浏览器插件-SwitchyOmega-2.3.15
20150831下载。 请解压后使用。含有.crx文件及文件夹,方便以开发者模式安到浏览器中。 建议使用Chrome Dev版本或者Canary版本。 Stable稳定发行版在安装.crx文件时,可能会有问题。 chrome://extensions/ 回车,然后拖入.crx文件
es-head chrome及360浏览器插件
elasticsearch-head浏览器插件,支持360浏览器,解压后直接拖拽到360浏览器即可安装使用。
postman-4.1.2 Chrome浏览器插件版
基于 Chrome 浏览器的扩展插件,postman-4.1.2。插件安装说明请见:https://blog.csdn.net/u010188178/article/details/83015728
chrome浏览器插件管理地址
https://chrome.google.com/webstore/category/extensions?hl=en-US
chrome浏览器插件搜罗
  闲来无事,研究了一些偏实用的好玩的chrome浏览器插件。     开始介绍之前先记录一下当前版本安装chrome扩展插件的方法,一般打开网页,直接开发者模式下拖过去就行了。如果系统版本高级些,那么需要把下载下来的crx后缀文件重命名为zip或rar压缩文件后再解压,拓展程序里选择‘加载已解压的拓展程序’选中解压的文件主目录就可以了(不需要选择下一层)。大概就这两种情况。     下面...
Chrome浏览器插件之---访问助手
先上图(插件): 这是百度下载安装地址http://chromecj.com/accessibility/2017-11/853/download.html?t=1531739832122 如果上面地址无法安装,或者安装了无法上网,请下载我本地打包的安装包 提取地址:https://pan.baidu.com/s/1lgN0Og9YMuNtZB3Ya8WPbQ 提取码:3yj8 ...
百度云·收藏·chrome浏览器插件
百度云收藏插件是一款可以帮助用户快速地把喜欢的网络文章、图片等通过Chrome收藏到百度云收藏中,这样用户只需要一个百度帐号就可以非常方便地对这些收藏的文章进行管理了,在百度云收藏中的文章可以自动归并到收藏的目录中,用户只需要点击收藏列表中的某一篇文章就可以使用百度云收藏插件来阅读了,这样即避免了原网站各种各样网站结构格式的干扰,也可以屏蔽掉一些乱七八糟的广告。
iframe跨域嵌套问题!!求大神帮忙
服务a页面中iframe嵌套了服务b的一个页面,服务b页面是图片上传,上传结束后将上传图片的各种信息传给服务a。可是跨于的情况下无法解决,请各路神仙帮帮忙~~rnrna页面rnrnrn rnb页面将返回值放入hidden的value中rn要求不可以通过多次嵌套,不通过后台程序。
创建Chrome浏览器插件
这里尝试给大家描述一个最简单的插件(功能只有点击按钮触发弹窗)的创建过程并运行。 插件的详细属性可参看官方文档https://developer.chrome.com/extensions/getstarted。 创建插件相关文件 首先我们在磁盘任意目录下创建一个文件夹,命名是我们插件的名字。后面我们会在这个文件夹内创建以下几个必要的文件: 1.manifest.json 此文件
chrome浏览器插件例子
一个chrome浏览器插件,自动填写worktile的任务描述表单
chrome浏览器插件vimium
vimium是相当于vim的一款插件,可以用来提升浏览器效率,可以使用键盘操作来尽量不使用鼠标
selenium添加chrome浏览器插件
selenium启动的chrome浏览器是一个空白的浏览器,不带有插件, 需要用到插件时可以先下载好插件的crx文件,在启动时添加进去就可以了 from selenium import webdriver import selenium.common.exceptions chrome_options = webdriver.ChromeOptions() # 设置好应用扩展 extension...
Chrome浏览器插件postman下载
本文基于Chrome 浏览器安装扩展插件postman 1.官网下载 1.1 下载地址:https://www.getpostman.com 点击进入postman官网 包括MacOS、Windows (32位、64位)、Linux(32位、64位)及Chrome 应用商店。 1.2 postman可点击选择相应版本进行下载,Chrome 应用商店为众所周知的原因,页面无法加载。 下
cefsharp浏览器插件 chrome内核
1、防止网页元素错位:  CefSettings settings = new CefSettings();   settings.CefCommandLineArgs.Add(&quot;disable-gpu&quot;, &quot;1&quot;); 2、屏蔽右键: 实现MenuHandler 接口。 class MenuHandler : CefSharp.IContextMenuHandler     {      ...
axure chrome谷歌浏览器插件
第一种方法: 1、打开Chrome浏览器,找到“工具 -> 扩展程序”; 2、将下载的Axure-RP-Extension-for-Chrome-0.6.2.crx文件拖到界面当中; 3、安装成功后,勾选“允许访问文件网址”就可以了。 重启Chrome; 如果第一种方法不行,使用第二种方法: 1. 使用名为 AxureRP_for_chorme_0_6_2 文件夹 2.然后在浏览器里打开扩展程序页面,然后选择“加载已解压的扩展程序”,找到上面那个文件确定就OK了
chrome浏览器插件infinity
chrome浏览器插件infinity
elasticsearch-head chrome浏览器插件
elasticsearch-head 用于chrome的插件,有了这个插件我们就不需要在服务器配置head了
Chrome浏览器插件 Octotree_v2.3.3.crx
自用的octotree-2.3.3版本,用于Github的浏览器文件树插件(目录索引)
selectByVisibleText() 无法获取可见元素,求大神
在处理下拉框的时候,可以通过selectByVisibleText()选择左边公司,但是不能通过selectByVisibleText()的方式选择右边的部门,但是右边的部门下面“”sele部门0“”并不是隐藏元素,请各位大神帮助,谢谢...
iframe 无法调用地图?
[code=HTML] rn [/code]rnrnrn[b]这是什么问题?[/b]
jsp文件无法调用外部css样式,求大神帮忙啊
静态HTML的文件调用外部CSS文件,在IE6.0与IE7.0下显示正常, rn但是同一个文件经过TOMCAT进行编译成JSP文件后在IE6.0下完全不能显示样式,但是IE7.0下正常,不知是什么原因导致的,样式表没用不兼容的设置。 rn不知各位有没有碰到过这种情况。
调用 其他iframe里的元素
我想问能不能,用js,调用其他iframe里的css类,这个css类是外部样式表里的?不知道说清楚 里没有
Iframe内部调用父类元素
$(window.parent.document).find("#myIframe").height(100); `这里写代码片`
Axure浏览器插件(chrome for mac )V0.6.3
mac下的chrome浏览器,支持Axure,解压后需要拖入chrome://extensions/。 V0.6.2版本会经常提示“此扩展程序可能已损坏”,新版本修复了这个问题
NPAPI chrome谷歌浏览器插件 例子
好不容易找到一个例子,是针对firefox的,编译通过了,在chrome浏览器中无法使用.经过修改已经可以在chrome浏览器中使用了. http://zhaoyl.sinaapp.com/post/5
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件