c# - IE 自动化 - 从服务器端 C# 调用客户端 JavaScript **方法**

标签 c# javascript internet-explorer .net-3.5 automation

给定以下 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 block :

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

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

以下服务器端 block 成功执行:

CallJavaScriptFunction("someFunction");

但这会抛出一个 DISP_E_UNKNOWNNAME:

CallJavaScriptFunction("someOBj.someMethod");

显然我在这里做错了什么 - 可能有另一种方法可以在 JavaScript 实例方法上调用 InvokeMember,但我无法找到方法。

有什么想法吗?任何帮助将不胜感激。

最佳答案

您需要调用someObj 属性,然后对该属性的值调用someMethod 方法

关于c# - IE 自动化 - 从服务器端 C# 调用客户端 JavaScript **方法**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3701715/

相关文章:

c# - Linq - 使用 GroupBy 我自己的类型与匿名类型

c# - 在 c# .net webservice 中替换 http 请求正文中的无效字符

c# - DataTable.Rows.InsertAt 不会接受 DataTable.Rows.Add 接受的新对象 []

Javascript - 输入验证 - 我可以检查字符 x 是否为数字且字符 y 是否为字母

javascript - getSelection() 在 IE10 中损坏

C# Unity - 确定哪个方法正在影响游戏对象

javascript - .attr ('checked' , true) 不会在按钮点击时重新添加

javascript - jQuery 函数中的正则表达式语法

javascript - 在 IE 中使用 JQuery UI 切换时列会调整大小

java - Selenium 通过鼠标悬停处理不同元素的相同链接文本