【问题标题】:SRC attributes in IFRAME change with onload functionIFRAME 中的 SRC 属性随 onload 函数而变化
【发布时间】:2014-09-28 19:51:03
【问题描述】:

如果 IFRAME 中的“src”属性更改是“onload”函数未执行。它仅在第一次调用时起作用。

JavaScript:

function dialog () {
    document.getElementById('result').src = "myurl";
}

function loading() {
    document.getElementById('loading').style.display = "none";
    document.getElementById('result').style.display = "block";
}

HTML:

<div id="loading"><img src="loading.gif"/></div>
<iframe style="display:none;" id="result" onload="loading();" src="myurl"/></iframe>

谢谢!

【问题讨论】:

标签: javascript html iframe


【解决方案1】:

您的页面域和 iframe 域相同吗?如果它们不同,您可以使用 CORS 访问 iframe 事件。


编辑

<script>

    function dialog() {
        document.getElementById('result').src = "http://jsfiddle.net";
    }
    function loading() {
        alert('Loading finished');
        document.getElementById('loading').style.display = "none";
        document.getElementById('result').style.display = "block";
    }

</script>

<div id="loading">Loading</div>
<iframe  style="display:none;" id="result" onload="loading();" src="http://jsfiddle.net"/>

它有效,现场演示 -- http://jsfiddle.net/xf2LgLsg/ 我相信你是在 HTML 之后写 JS,所以这可能是个问题。

【讨论】:

  • 是的,它是同一个域。我在 iframe 和外部更改了 SRC 属性。
  • 用经过测试的解决方案编辑了我的答案。
  • 并将函数 dialog() 更改为 dialog(params)。不工作!
  • 如果您尝试加载 ebay.com,您必须在 ebay.com 域上运行该脚本,或使用 CORS。
猜你喜欢
  • 1970-01-01
  • 2012-04-05
  • 2013-03-30
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2013-06-28
  • 2022-06-27
  • 1970-01-01
相关资源
最近更新 更多