刷新Web浏览器控件中的iFrame
问题描述:
C#Visual Studio 2010刷新Web浏览器控件中的iFrame
我有一个复杂的网页,其中包含几个加载到Web浏览器控件中的iframe。我试图找出一种方法来刷新其中一个iframe,当用户单击窗体上的一个按钮时。
我找不到任何具体的刷新单个iframe。有任何想法吗?
答
从DOM中,你可以调用:
document.getElementById([FrameID]).contentDocument.location.reload(true);
使用WebBrowser控件,您可以执行JavaScript的自己,通过使用文件的InvokeScript方法:
browser.Document.InvokeScript([FunctionName], [Parameters]);
把这两个通过在父页面中编写自己的功能一起构思概念:
function reloadFrame(frameId) {
document.getElementById(frameId).contentDocument.location.reload(true);
}
A第二在C#代码中调用此:
browser.Document.InvokeScript("reloadFrame", new[] { "myFrameId" });
答
如何使用MSHTML和IHTMLLocation接口的reload方法。你会添加引用Microsoft.mshtml然后尝试:
IHTMLDocument2 doc = webBrowser1.Document.Window.Frames["MyIFrame"].Document.DomDocument as IHTMLDocument2;
IHTMLLocation location = doc.location as IHTMLLocation;
if (location != null)
location.reload(true);
的true
重新加载页面从服务器的值,而false
从缓存中检索它。
我对这是如何工作有点模糊。我无法控制正在加载到Web浏览器控件的网页。这听起来像reloadFrame JavaScript函数将需要被添加到页面,以使此解决方案可以工作。它是否正确? – Josh 2010-08-13 15:53:35
这就是我的意思,是的。以为你可以通过iframe控制页面。抱歉没有帮助。 – 2010-08-13 16:08:59
不用担心,我欣赏这些想法 - 任何人都有什么想法? – Josh 2010-08-13 16:39:39