Я использую Watin и хочу запустить какой-нибудь пользовательский javascript.Я не могу использовать Browser.Eval, потому что иногда я захочу выполнить код внутри IFrame.Я попытался использовать свойство DomContainer для этого, но DomContainer возвращает полный DOM, а не DOM IFrame.Пример ниже:
Element.DomContainer.Eval(jScript)
Есть ли способ сделать это с помощью объекта Element?
Я хочу избежать использования двух конструкторов.(См. Ниже):
public class TelerikWatinTextBox: ITextBox
{
public TelerikWatinTextBox(Frame frame, string clientId)
{
Frame = frame;
ClientId = clientId;
}
public TelerikWatinTextBox(Browser browser, string clientId)
{
Browser = browser;
ClientId = clientId;
}
public string ClientId { get; set; }
public Browser Browser { get; set; }
public Frame Frame { get; set; }
#region ITextBox Members
public string Value
{
get
{
string value = "";
string jScript = string.Format(@"$find(""{0}"").get_value();", ClientId);
if (Browser != null)
{
value = Browser.Eval(jScript);
}
else if (Frame != null)
{
value = Frame.Eval(jScript);
}
return value;
}
set
{
string jScript = string.Format(@"$find(""{0}"").set_value(""{1}"");", ClientId, value);
if (Browser != null)
{
Browser.Eval(jScript);
}
else if (Frame != null)
{
Frame.Eval(jScript);
}
}
}
#endregion
}
public interface ITextBox
{
string Value { get; set; }
}
NB ClientId является ссылкой на DIV.