在iframe文档中执行javascript

时间:2017-11-07 06:58:25

标签: dotnetbrowser

我正在尝试使用Dotnetbrowser 1.11执行iframe文档中的javascript。

在以下代码中,returnValue.IsFunction()返回false。

JSValue returnValue = browser.ExecuteJavaScriptAndReturnValue(FunctionName);

if(returnValue.IsFunction){// something}

如果脚本位于当前加载的文档中,则ExecuteJavaScript可以正常工作。但是当脚本加载到当前加载的文档中的iframe文档中时,找不到相同的文档。

请提供帮助。

1 个答案:

答案 0 :(得分:2)

ExecuteJavaScriptAndReturnValue()方法具有覆盖功能,允许使用其ID号在特定帧中执行JavaScript代码。要获取当前加载的文档上的子框架ID列表,可以使用Browser.GetFramesIds()方法。这是一个代码示例:

browser.FinishLoadingFrameEvent += (s, e) =>
{
    if (e.IsMainFrame)
    {
        List<long> framesIds = e.Browser.GetFramesIds();
        JSValue returnValue =
            e.Browser.ExecuteJavaScriptAndReturnValue(framesIds.First(), FunctionName);

        if (returnValue.IsFunction){//something}
    }
};

考虑到完全页面加载后应使用Browser.GetFramesIds(),列表将只包含已加载的ID。

相关问题