IE Automation - вызов клиентского метода JavaScript ** из серверной части C # - PullRequest
1 голос
/ 13 сентября 2010

Учитывая следующий код C #:

    public object CallJavaScriptFunction(string functionName, params object[] args)
    {
        object script = Document.Script;
        var result = script.GetType().InvokeMember(functionName, BindingFlags.InvokeMethod, null, script, args);

        return result;
    }

И следующий блок JavaScript на стороне клиента:

function someFunction() {
    alert('This is only a test!');
}

var someObj = {
    someMethod: function() {
        alert('This is another test!');
    }
}

Следующий серверный блок успешно выполняется:

CallJavaScriptFunction("someFunction");

Но это вызовет DISP_E_UNKNOWNNAME:

CallJavaScriptFunction("someOBj.someMethod");

Очевидно, что я делаю что-то не так - возможно, есть другой способ вызова InvokeMember для методов экземпляра JavaScript, но я не смог выяснить, как.

Есть мысли? Любая помощь будет оценена.

1 Ответ

2 голосов
/ 13 сентября 2010

Вам необходимо вызвать свойство someObj , а затем вызвать метод someMethod для значения свойства

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...