3

看起来这是一个 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 之后。我已经测试了以下内容:

  1. document.createElement('iframe')附加到文档
  2. document.createElement('iframe')附加到预先创建的 div
  3. .innerHTML包含预先创建的 iframe 代码的方法
  4. frames['iframe_name'].location.src使用带有空 src 的预创建 iframe
  5. .location.assign()
    • document.getElementById()失败_
    • frames['iframe_name']重定向
  6. 与 jquery 相同 $('<iframe src="link"/>'). appendTo('#reportA');
  7. 也试过先创建没有 src 的 iframe 然后设置它
  8. 还使用$('#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 是预先创建的。任何想法为什么?

附言。抱歉有些不全面的句子,但我对这个问题很感兴趣

4

1 回答 1

0

您是否使用postMessage从 iframe 与父级进行通信?我遇到了这个问题并注意到parent.postMessage从 iframe 的脚本中删除修复了它。如果我找到一个解决这个问题的方法,我会更新。

于 2014-07-11T18:27:05.730 回答