【问题标题】:OnChange Event foriFrame on HTML with Onload Event带有 Onload 事件的 HTML 上的 OnChange 事件 foriFrame
【发布时间】:2021-09-15 19:30:36
【问题描述】:

我有 SAP 系统,我可以在其中集成 HTML 页面。此 HTML 页面在 Button Click 上启动。

按钮点击每次都会改变 iframe 源的值。 据我了解基本,我编写了以下代码,在第一次点击时运行良好。 HTML 页面被加载。

<!DOCTYPE html>
<html>
<body onLoad="myFunction()">
<iframe id="myFrame" src="http://www.w3schools.com/" height="1000" width="2000" frameborder="0"></iframe>
<script>
function myFunction() {

  document.getElementById("myFrame").src = sap.byd.ui.mashup.context.inport.FirstName;

}
</script>
</body>
</html>

当我第二次单击时,sap.byd.ui.mashup.context.inport.FirstName 的值发生了变化,但 iframe 中没有变化。

我看到有一个名为onChange 的事件,但我无法正确使用它。谁能帮我做这件事?

【问题讨论】:

  • 该代码中没有按钮。你只是在body onload 上调用你的函数,它只会运行一次。
  • @Ozan : 按钮在 SAP 系统中,它改变了 `sap.byd.ui.mashup.context.inport.FirstName` 的值。这部分集成在SAP系统中。
  • 这里,在你的代码中,srciframemyFunction()。这会在body onload 上调用,它只会为 html 页面运行一次。一旦将sap.byd.ui.mashup.context.inport.FirstName 的值赋值为iframe.src,更改FirstName 将不会影响iframe.src;更改Firstname后需要再次调用myFunction()才能更改iframe.src
  • @Ozan:是的,我明白这一点。但是如何做到这一点。
  • 这主要是关于 SAP 的问题,而不是关于 javascript 的问题。我一点也不知道它是如何与 javascript 通信的。你有办法从 SAP 调用 javascript 函数吗?您的问题不在于您编写的 html/js 代码,而在于您省略的 SAP 代码。

标签: javascript html dom iframe dom-events


【解决方案1】:

一个丑陋的解决方案是不断检查FirstName 的值是否有变化。

<script>
  var _firstname;

  function myFunction() {
    document.getElementById("myFrame").src = sap.byd.ui.mashup.context.inport.FirstName;
    _firstname = sap.byd.ui.mashup.context.inport.FirstName;
  }

  setInterval(function() {
      if (_firstname != sap.byd.ui.mashup.context.inport.FirstName)
        myFunction();
    }, 1000) //check every second to see if FirstName value changed
</script>

但我绝对建议从您更改sap.byd.ui.mashup.context.inport.FirstName 的任何位置调用myFunction(),以避免使用setInterval如果你可以改变一个javascript对象的值,你应该也可以进行函数调用。我建议你研究如何调用一个javascript函数,在你改变@之后立即调用myFunction() 987654327@。那么你就不需要setInterval了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多