在 Web 浏览器中调用 javascript 函数时,指定的强制转换无效



我正在尝试在网络浏览器中调用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
    });
}

我正在尝试在 c# 中使用此脚本调用"删除"函数:

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

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

可能出现什么问题?

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

您是否从创建它的线程以外的线程调用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...
    }

最新更新