Обновление iFrame в элементе управления веб-браузера - PullRequest
1 голос
/ 13 августа 2010

C # Visual Studio 2010

У меня сложная веб-страница, содержащая несколько фреймов, которые я загружаю в элемент управления веб-браузера. Я пытаюсь найти способ обновить один из фреймов, когда пользователь нажимает кнопку в форме окна.

Я не могу найти что-то конкретное для обновления одного фрейма. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 13 августа 2010

Из DOM вы можете просто вызывать:

document.getElementById([FrameID]).contentDocument.location.reload(true);

Используя элемент управления WebBrowser, вы можете выполнить javascript самостоятельно, используя метод документа InvokeScript Document:

browser.Document.InvokeScript([FunctionName], [Parameters]);

Соедините эти две концепции, написав свою собственную функцию на родительской странице:

function reloadFrame(frameId) {
    document.getElementById(frameId).contentDocument.location.reload(true);
}

И вызовите это в своем коде C #:

browser.Document.InvokeScript("reloadFrame", new[] { "myFrameId" });
1 голос
/ 14 августа 2010

Как насчет использования MSHTML и метода reload интерфейса IHTMLLocation .Вы добавили бы ссылку на 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 извлекает ее из кэша.

...