minipad3APP无法操作如何解决

最近在开发SDK的过程中发现IE下有个很怪异的问题:在同一域下,因在父页面上设置了document.domain,而导致无法正常和(也是同域下)进行通信,IE下抛出的错误是:SCRIPT5: 拒绝访问,导致无法操作iframe中的内容。
经过查阅了很多资料后发现IE下,在父页面或在iframe页面中,只要设置了document.domain,无论是和当前域名相同还是根域名,均视为跨域,所以才会出现拒绝访问的错误,即使你这样写document.domain=document.domain;虽然好像没人这么干。
那么如何才能解决这个问题,让父页面和iframe页面正常通信呢,根据,让双方均设置同样的domain就可以达到目的。
比如页面A是 ,页面B是, 这时候两个页面中都写上document.domain=””,这样两个页面就可以交互了。
但是,上面的情况只适用于嵌入的页面是事先已经已&iframe src=”/b.html”&&/iframe&的形式在页面中写好了,而如果是在页面中动态创建的iframe标签再指定其src为/b.html,上面的方法就不适用 了。
此种情况及解决方法请直接参考原著:
上面的这种情况是当Iframe的src不为空,即存在实际的引用页面的解决方法。但如果需要创建一个空白的iframe(即src不指定),还要想拿到iframe里的document对象呢?看个例子:
//访问地址:/a.html
&title&Iframe&/title&
& type="text/"&
document.domain = 'a.com';
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.onload = function() {
console.log(iframe.contentWindow.document.location)
有人想到设置iframe里面的domain,思路正确,但由于父页面已经设置了domain,在父页面中根本无法获取到空白iframe的document对象,也就无法设置iframe的domain。
后来经过了很多尝试,也研究了twitter的SDK的代码,找到了解决方案:
通过设置iframe的src来执行一段JS代码,如下,
iframe.src = "javascript:void((function(){document.open();document.domain='"+ document.domain + "';document.close()})())";
通过这种方式就可以改写iframe里面的domain了,这和在浏览器地址栏里输入这段代码的功效一样,这种方式像是旁门左道,但是这确实奏效了。
于是上面的代码更改为:
//访问地址:/a.html
&title&Iframe&/title&
&script type="text/javascript"&
document.domain = 'a.com';
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.contentWindow.
} catch (e) {
iframe.src = "javascript:void((function(){document.open();document.domain='"+ document.domain + "';document.close()})())";
console.log(iframe.contentWindow.document.location)
在IE9下测试顺利通过,运行结果:/a.html,至此,问题看似已经解决。
于是在其他版本的IE浏览器下做测试,结果出人意料,IE6-IE8均仍报错“拒绝访问”,头疼,经过反复尝试,后来无意间在设置iframe.src后,使用了setTimeout来获取iframe里的内容,靠,居然不报错了。看来是设置iframe的domain和获取iframe里面的内容这两个操作存在异步问题。
然后将上面方法改进:
//访问地址:/a.html
&title&Iframe&/title&
&script type="text/javascript"&
document.domain = 'a.com';
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
if(/msie/i.test(navigator.userAgent)){
iframe.contentWindow.
} catch (e) {
iframe.onload = function() {
console.log(iframe.contentWindow.document.location);
iframe.onload =
iframe.src = "javascript:void((function(){document.open();document.domain='"+ document.domain + "';document.close()})())";
再次在各IE下做测试,顺利通过!至此父页面因设置了document.domain而导致无法正常和同域下用js动态创建的iframe正常通信的问题彻底得到解决!如果你在开发过程中遇到类似问题,不妨尝试下这种方法,如果你有更好的解决方案,希望能公开出来供大家一起学习,讨论。。
Like一下吧
您可能还会喜欢
欢迎转载,转载请注明来源于,多谢合作!
本文永久链接地址:
Powered by , Supported By ,iphone4添加源出错,且因所依赖的软件包未找到或存在冲突软件包,操作无法完成怎么解决_百度知道
iphone4添加源出错,且因所依赖的软件包未找到或存在冲突软件包,操作无法完成怎么解决
添鼎花尺拘侔饺踌邪穿矛加任何源都出现红字 能添加到但是搜索的文件从该添加出现了红字的源上下载时出现、因所依赖的软件包未找到或存在冲突软件包,操作无法完成从其他源(cydia自带)下载则正常删掉cydia自带源重新添加又红字!怎么解决啊,版本是ios 4.3.3
曾经一切正常
提问者采纳
源服务器顶不住大家疯狂的更新,就会出现红字。建议凌晨或者中午吃饭时间添加。
按默认排序
其他1条回答
应该是网络不好的原因,建议你换个其它的时段试试
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁现在腾讯管家完美支持5S了,还显示因为依赖的软件包未找到或存在冲突软件包,操作无法完成,怎么解决?_百度知道
现在腾讯管家完美支持5S了,还显示因为依赖的软件包未找到或存在冲突软件包,操作无法完成,怎么解决?
提问者采纳
您谢您支持~我暂支持ios7.1beta版哦苹没式发布祝愉快~
什么时候能支持7.1bate版?
您好,具体时间尚不明确,也要看苹果官方的发布情况,感谢您对腾讯手机管家的支持!
已回答78270
响应时间&5小时
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁电脑搜索文件的时候遇到 “意外错误,操作无法完成”怎么解决???_百度知道
电脑搜索文件的时候遇到 “意外错误,操作无法完成”怎么解决???
搜索候 搜意外错误操作完前都电脑毒设置问题啊
打运行,输入cmd,敲车打黑色命令提示符输入框面字符直接粘贴复制进:regsvr32 /i shell32.dll regsvr32 jscript.dll regsvr32 vbscript.dll 跳堆框挨确定应该试试我前搜索文件夹现说意外错误操作进行我弄
其他类似问题
搜索文件的相关知识
其他1条回答
应该设置问题 具体问题说
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您还未登陆,请登录后操作!
网页出现错误 而导致此项操作无法完成,请问是怎么回事?怎样解决?
打开某个网页的时候,提示错误,具体为:syntax error on include support/domhelper.js 由于出现错误 而导致此项操作无法完成,请问是怎么回事?怎样解决?
先用杀软查杀一下看看是否中毒,或者建议下个卡卡修复一下看看。
172.16.181.*
大哥这是JQ错误,真无语了
回答数:993
和木马强杀工具windows清理助手查杀恶意软件和木马:
下载网址:
下载安装后,首先升级到最新版本,然后退出正常模式并重启按F8进入到安全模式。打开软件,点击&系统扫描&,对扫描结果全选,然后点击&执行清理&按钮,如果软件提示你是否&备份&,选择&是&(备份是为了防止发生清理错误,如果清理后系统没有发生异常,就删除备份),按提示进行操作即可(软件也可以在正常模式中进行查杀)。
1、开机按F8进入安全模式后在退出,选重启或关机在开机,就可以进入正常模式(修复注册表)。
2、如果故障依旧,请你用系统自带的系统还原,还原到你没有出现这次故障的时候修复(或用还原软件进行系统还原)。
3、如果故障依旧,使用系统盘修复,打开命令提示符输入SFC /SCANNOW 回车(SFC和/之间有一个空格),插入原装系统盘修复系统,系统会自动对比修复的。
4、如果故障依旧,在BIOS中设置光驱为第一启动设备插入原装系统安装盘按R键选择&修复安装&即可。
5、如果故障依旧,建议重装操作系统。
如果实在不行
建议先查杀一下木马,修复一下系统试试(也可能是某网站服务器故障引起的)。
建议你下载恶意和木马强杀工具windows清理助手查杀恶意软件和木马:
下载网址:
下载安装后,首先升级到最新版本,然后退出正常模式并重启按F8进入到安全模式。打开软件,点击&系统扫描&,对扫描结果全选,然后点击&执行清理&按钮,如果软件提示你是否&备份&,选择&是&(备份是为了防止发生清理错误,如果清理后系统没有发生异常,就删除备份),按提示进行操作即可(软件也可以在正常模式中进行查杀)。
1、开机按F8进入安全模式后在退出,选重启或关机在开机,就可以进入正常模式(修复注册表)。
2、如果故障依旧,请你用系统自带的系统还原,还原到你没有出现这次故障的时候修复(或用还原软件进行系统还原)。
3、如果故障依旧,使用系统盘修复,打开命令提示符输入SFC /SCANNOW 回车(SFC和/之间有一个空格),插入原装系统盘修复系统,系统会自动对比修复的。
4、如果故障依旧,在BIOS中设置光驱为第一启动设备插入原装系统安装盘按R键选择&修复安装&即可。
5、如果故障依旧,建议重装操作系统。
如果实在不行,建议选择修复安装,这样即修复了系统,又可使C盘的程序和文件不受损失。
如果是IE损坏,请下载超级兔子在她的选项中有重装IE,建议重装IE。
下载地址:
您的举报已经提交成功,我们将尽快处理,谢谢!

我要回帖

更多关于 minipad电池 的文章

 

随机推荐