如何在调用从JavaScript注册的RegisterJsObject的C#方法时引用特定的IFrame

时间:2017-08-31 03:49:42

标签: javascript c# iframe cefsharp

我希望能够在给定任意网页的情况下,在使用RegisterJsObject注册的对象中告诉C#方法“选择”特定帧。我所说的“选择”一个框架的意思是保留对相应IFrame的引用,以便在此框架上对EvaluateScriptAsync进行所有后续调用。

我需要从JavaScript执行此操作,因为我已经在JavaScript中编写了一组工具来交互并选择页面上的元素(如Chrome开发者工具)。所以我想做的就是能够从包含框架的窗口(我将动态注入到页面中)的JavaScript代码中调用我的C#对象中的方法并告诉它“选择< em>那个特定的框架“。我根本不知道如何告诉我的C#代码我要选择哪个IFrame

由于这些是随机页面,因此我不能依赖ID或帧名称。此外,我不知道是否有办法让来自JavaScript的CefSharp将Identifier分配给iframe。我还尝试从JavaScript中为我的iframe分配一个唯一的名称,然后按名称引用它,但是在我从JavaScript重命名框架后,IFrame的{​​{3}}属性没有得到更新。

似乎唯一有效的做法是从JavaScript中执行someFrame.focus()(其中someFrame是我想要选择的iframe元素),然后从C#获取Name。这个问题是它看起来似乎不可靠。有些页面可能有脚本阻止帧保持焦点。

有更好的方法吗?

0 个答案:

没有答案