在 iframe 文档中执行 javascript

Execute javascript inside iframe document

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

在下面的代码中 returnValue.IsFunction() returns false.

JSValue returnValue = browser.ExecuteJavaScriptAndReturnValue(FunctionName);

if (returnValue.IsFunction){//某事}

如果脚本在当前加载的文档中,ExecuteJavaScript 工作正常。但是当脚本加载到当前加载文档内的 iframe 文档中时,找不到相同的内容。

请就此提供帮助。

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。