我有SAP系统,我可以集成HTML页面。此HTML页面在Button Click
上启动。
按钮单击会更改每次Iframe源的值。 据我所知基本,我编写了下面的代码,它在First Click上工作正常.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
的事件,但我无法正确使用它。任何人都可以帮我这样做。
由于 普拉特
答案 0 :(得分: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>
但我绝对建议您从更改myFunction()
的任何地方致电sap.byd.ui.mashup.context.inport.FirstName
,以避免使用setInterval
。 如果您可以更改javascript对象的值,您也应该能够进行函数调用。我建议您研究如何调用javascript函数并在您之后立即调用myFunction()
改变FirstName
。那么您将不需要setInterval
。