【问题标题】:XUL iframe firefox addon, how to change the src within the iframe?XUL iframe firefox插件,如何更改iframe内的src?
【发布时间】:2015-06-17 14:24:26
【问题描述】:

我正在开发一个firefox插件,

在我的设置页面 dialog.xul 我有一个 iframe,我在其中加载不同的设置页面 page1.xul page2.xul page3.xul

Iframe:

<vbox flex="1">
  <iframe
      id="iframe"
      src="chrome://xxx/content/page1.xul"
      flex="1"></iframe>
</vbox>

在 iframe 内我需要从 page2.xul 导航到 page3.xul 使用 page2.xul 中的代码

我的代码(page2.xul):

gBrowser.loadURI("chrome://xxx/content/page3.xul");

也试过了

 document.getElementById("iframe").setAttribute("src", "chrome://xxx/content/page3.xul");

但它不起作用我知道 iframe 容器无法从 iframe 访问,但我该如何进行重定向?

【问题讨论】:

    标签: javascript firefox iframe firefox-addon xul


    【解决方案1】:

    使用 XUL 中的 iframe,您必须使用 HTML 命名空间创建它,否则加载事件之类的操作无法正常工作,请参阅此主题:http://forums.mozillazine.org/viewtopic.php?f=19&t=2809781&hilit=+iframe

    一旦你这样做了,更改 src 等应该会按预期工作。

    【讨论】:

    • 感谢兄弟提供我不知道的信息
    • 不,它没有......我结束了在主 javascript 代码中实现它
    • 我们必须小心 html 命名空间在调用 window.open 时禁用了许多专有功能,例如 centerscreen,宽度、高度和 screenX... 等都被忽略了... 我不建议添加 html 命名空间在 xul 上(我不需要它们,但我认为最好在最后添加它们不是大声笑)
    • 非常感谢 intika 的知识分享,我不知道,但这完全有道理。
    【解决方案2】:

    解决方案:

    我设法处理了主 XUL 中的代码

    显然XUL不支持该结构

    [XUL1 >> iframe(XUL2 : change something in XUL1)]
    

    出于安全原因,经典 HTML + Javascript 不支持此结构 XUL中也是如此

    【讨论】:

    • 使用命名空间修复了吗?
    • 这很奇怪,我经常更改 iframe 的 src。例如,我在这里的要点是:gist.github.com/yajd/9085804
    • 我确实做错了,我认为这与控制 iframe 中页面内的 iframe 相关......但无论如何我只是将我的代码放在 js 文件中的其他位置(不再在 xul 文件中),没关系,但感谢您的建议;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2014-05-02
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    相关资源
    最近更新 更多