2

我正在尝试在 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
    });
}

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

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

但是当我试图调用这个脚本时,控制台总是向我显示一个错误:指定的演员表无效。

可能出了什么问题?

4

2 回答 2

0

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

于 2015-04-15T13:31:13.200 回答
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...
    }
于 2020-11-20T13:12:37.313 回答