Content Grabber で C# を使用して Javascript 関数を呼び出そうとしています。(Content Grabber は Web スクレイピング ソフトウェアです)。
Javascript コードは次のとおりです。
$.definePage({
idRecaptcha: null,
init: function() {},
carregarReCaptcha: function() {
if(page.idRecaptcha == null) {
var sitekey = $("#reCaptchaPublicKey").val();
page.idRecaptcha = grecaptcha.render($("#tecRecaptcha")[0], {
'callback' : page.verifyCallback,
'sitekey': sitekey
});
}
},
verifyCallback: function(response) {
if(response) {
$("#form").submit();
}
}
});
var onloadCallback = function() {
page.carregarReCaptcha();
}
呼び出したい関数は「verifyCallback」です。この関数は基本的に recaptcha トークンを送信します。これにより、入力したトークンが正しいかどうかが検証されます。
Content Grabber エージェントで、この関数を呼び出したいのですが、このコードがありますが、エラーが発生します。
using System;
using System.Web.UI;
using Sequentum.ContentGrabber.Api;
public class Script
{
//See help for a definition of CustomScriptArguments.
public static CustomScriptReturn CustomScript(CustomScriptArguments args)
{
// retrieve page from current handler
var page = System.Web.HttpContext.Current.CurrentHandler as Page;
if (page == null)
{
// do something, e.g. throw exception
return CustomScriptReturn.Pause();
}
// Place your script code here.
// Return empty for no special action.
string response = args.DataRow["Captcha"];
string script = "page.verifyCallback('" + response + "');";
// call ClientScript from existing page instance
page.ClientScript.RegisterStartupScript(page.GetType(), "page.verifyCallback", script, true);
return CustomScriptReturn.Empty();
}
}
コンパイルすると、次のエラーが返されます。
Object reference not set to an instance of an object.
単純に削除できないようですobject sender, EventArgs e
私は JS や C# にあまり詳しくないので、助けていただければ幸いです。どうもありがとう!