在 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。
我正在尝试使用 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。