看起来它是一个Firefox Home严格的问题,并且由于Mozzilla放弃了对它的支持并在iStore中将其删除,我认为没有必要尝试解决方法(http://thenextweb.com/apps/2012/08/31/mozilla-retires-firefox-home-ios-releases-source-code-github/),无论如何我已经向他们发布了错误(https://bugzilla.mozilla.org/show_bug.cgi?id=853377),如果有人有兴趣关注/解决
我使用iframe方法进行了很好的交叉浏览库。
它起作用beatifull直到..在iPhone上用Firefox打开。带有库的页面开始,然后神奇地被重定向。
我已经进入代码并尝试识别问题:
将iframe父级重新加载到iframe src后动态添加。我测试了以下内容:
document.createElement('iframe')
附加到文档document.createElement('iframe')
附加到precreated div .innerHTML
方法,其中包含预先创建的iframe代码frames['iframe_name'].location.src
使用带有空src的预先创建的iframe .location.assign()
document.getElementById()
失败frames['iframe_name']
重定向$('<iframe src="link"/>'). appendTo('#reportA');
$('#iframe').attr('src','link')
导致重定向更新此外,我在日志上看到(在iframe中称为页面正在记录状态)。 实际上有两个调用,所以看起来首先是附加的iframe读入,然后在新页面中打开iframe src。
在解析我的代码时,我发现在部分代码中创建iframe时会出现问题,这是由我的js loader动态添加的。我使用了以下附加脚本
var head = document.getElementsByTagName("head")[0];
var script = null;
script = document.createElement('script');
script.type = 'text/javascript';
var tag = Math.round(new Date().getTime() / 1000);
script.src = GLOBAL_VARIABLE_WITH_PATH_TO_URL+'jsc/include.js?'+tag ;
head.appendChild(script);
也尝试了
document.write("<script src='"+FUTUREclickINFOpathS+"fcijsc/fci-include.js?"+tag+"'><\/script>");
更新
还尝试在jquery $(document).ready()
上附加irame - 当与document.write
方法一起使用时,它可以正常工作,直到调用setTimeout
中的附加
更奇怪的是,在主静态js文件中使用setTimeout()
时,会发生同样的事情。我今天会尝试setInterval()
,看看发生了什么。
很明显,iframe的src上的任何更改都会导致父重新加载,即使iframe是预先创建的。有什么想法吗?
PS。对于一些不完整的句子感到抱歉,但是我的头脑缠绕着这个问题
答案 0 :(得分:0)
您是否使用postMessage
从iframe与父母进行通信?我遇到了这个并注意到从iframe的脚本中删除parent.postMessage
修复了它。如果我找到一个,我会更新一种方法来解决这个问题。