我试图在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);
}
}
但总是在我尝试调用此脚本控制台时显示错误:指定的强制转换无效。
可能出了什么问题?
答案 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...
}