0

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# にあまり詳しくないので、助けていただければ幸いです。どうもありがとう!

4

2 に答える 2