问题
I wants to replace the iframe, if user clicks on getPrice button again by selecting different input.I have written code and tried several things but nothing worked out. everytime I cant use document.body.appendchild(). My code is below. Please suggest here.
function getPrice()[
var ifrm = document.createElement('iframe');
ifrm.id = "frameID";
ifrm.setAttribute('src', 'http://40.85.176.227/invoke/Tier1ICLStd_New.Price/getPrice?CloudName=Azure East
ifrm.setAttribute('align', 'right');
//ifrm.setAttribute('marginheight', '50');
ifrm.style.margin= "auto";
ifrm.scrolling="no";
ifrm.style.border= "0";
ifrm.style.margin= "0";
//document.body.insertBefore(ifrm, document.body.firstChild);
//alert();
if(document.getElementById("frameID")==null)
{
document.body.appendChild(ifrm);
}
else
{
alert("Else"); // I am getting control till here but what code to replace the existing iframe.
//var item = document.getElementById("frameID").childNodes[0];
item.replaceChild(ifrm,item.childNodes[0]);
alert("test");
document.body.appendChild(ifrm);
//ifrm.parentNode.replaceChild(ifrm, ifrm);
}
}
回答1:
If you want to update the iframe content, you just need to use something like this :
function updateIframeSrc(newSrc) {
document.getElementById("frameID").src = newSrc;
}
EDIT : Add exemple with HTML declaration to answer a comment.
<div class="frameClass">
<iframe id="frameID" width="100%" height="1080" frameborder="0" scrolling="auto" marginheight="0" marginwidth="0"
src="http://svn.min.not/metasite/trunk/docs/README.md">
</iframe>
</div>
回答2:
Without JQuery:
var i = 0;
var ifrm = document.createElement('iframe');
ifrm.id = "frameID";
ifrm.setAttribute('align', 'right');
ifrm.style.display="none";
document.body.appendChild(ifrm);
function getPrice(){
ifrm.setAttribute('src', 'http://40.85.176.227/invoke/Tier1ICLStd_New.Price/getPrice?CloudName=Azure East&token=' + i);
ifrm.style.display = "inline";
i ++;
}
来源:https://stackoverflow.com/questions/40761222/wants-to-replace-the-iframe-based-on-onlclick