在webbrowser中调用javascript函数时,指定的强制转换无效

时间:2015-04-15 13:25:56

标签: javascript c# invokescript

我试图在webbrowser中调用javascript函数。 网站有单独的文件与javascript函数。 这是网站html文件的一部分:

<div class="header">
    <a class="buttonrg" onclick="$(this).hide();remove('56442741')"> Remove </a>
</div>

这是来自.js文件的删除功能:

function remove(id) {
    $.ajax({
        type: "POST",
        url: "ajax/remove.php",
        data: "remove=" + id
    });
}

我试图打电话&#39;删除&#39;在c#中使用此脚本运行:

    public void RemoveOffer(int _id)
    {
        try
        {
            webBrowser.Document.InvokeScript("remove", new object[] { _id.ToString() });
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
     }

但总是在我尝试调用此脚本控制台时显示错误:指定的强制转换无效。

可能出了什么问题?

2 个答案:

答案 0 :(得分:0)

data: "remove=" + remove更改为data: { "remove": id }

答案 1 :(得分:0)

您是不是从创建该线程的线程中调用InvokeScript()?这样做导致向我抛出此异常。

在这种情况下,这是一个奇怪的错误消息,但是我用Invoke()

解决了

例如

    private void RemoveOffer(int _id)
    {
        if (webBrowser.InvokeRequired)
        {
            webBrowser.Invoke(new Action(() => { RemoveOffer(_id); }));
            return;
        }
        webBrowser.Document.InvokeScript("remove", new object[] { _id }); // Not sure if the .ToString() is required...
    }