看起来这是一个 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 方法进行通信。
它工作得很好,直到 .. 在 iPhone 上用 Firefox 打开。带有库的页面开始,然后神奇地被重定向。
好吧,我已经进入代码并尝试确定问题:
在将 iframe 父重新加载动态添加到 iframe src 之后。我已经测试了以下内容:
document.createElement('iframe')
附加到文档document.createElement('iframe')
附加到预先创建的 div.innerHTML
包含预先创建的 iframe 代码的方法frames['iframe_name'].location.src
使用带有空 src 的预创建 iframe.location.assign()
document.getElementById()
失败_- 带
frames['iframe_name']
重定向
- 与 jquery 相同
$('<iframe src="link"/>'). appendTo('#reportA');
- 也试过先创建没有 src 的 iframe 然后设置它
- 还使用
$('#iframe').attr('src','link')
原因重定向进行更新
此外,我在日志中看到(iframe 中称为页面是日志状态)。实际上有两个调用,所以看起来首先附加的 iframe 读入,然后在新页面中打开 iframe src。
在剖析我的代码时,我发现在部分代码中创建 iframe 时会出现问题,这是由我的 js 加载器动态添加的。我使用了以下附加脚本
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 上附加 iram $(document).ready()
- 当与document.write
方法一起使用时它工作正常,直到调用附加setTimeout
更奇怪的是,当setTimeout()
在主静态 js 文件中使用时,也会发生同样的事情。我今天会试试setInterval()
,看看发生了什么。
因此很明显,iframe 的 src 上的任何更改都会导致父级重新加载,即使 iframe 是预先创建的。任何想法为什么?
附言。抱歉有些不全面的句子,但我对这个问题很感兴趣