1

ウィキペディアのページのセクションを編集しようとしていますが、編集すると、セクション全体が、URL を介して送信したテキストに置き換えられ、見出しも含めて、セクションではなくなります。見出しを削除せずにセクションを編集する方法はありますか?

これまでのところ、私が使用している関数 (確かにドキュメント ページから盗んだものです) は次のとおりです。

function editSection(section, summary, content, editToken) {
    $.ajax({
        url: mw.util.wikiScript('api'),
        data: {
            format: 'json',
            action: 'edit',
            title: mw.config.get('wgPageName'),
            section: section,
            summary: summary,
            text: content,
            token: editToken
        },
        dataType: 'json',
        type: 'POST',
        success: function(data) {
            if (data && data.edit && data.edit.result == 'Success') {
        window.location.reload();
            } else if (data && data.error) {
                alert('Error: API returned error code "' + data.error.code + '": ' + data.error.info);
            } else {
                alert('Error: Unknown result from API.');
            }
        },
        error: function(xhr) {
            alert('Error: Request failed.');
        }
    });
}

編集トークンを取得するには、次を使用します

function getEditToken() {
    $.getJSON(
        'http://en.wikipedia.org/w/api.php?', {
            action: 'tokens',
            type: 'edit',
            format: 'json'
        },
        function(data) {
            if (data.tokens) {
                wgEditToken = data.tokens.edittoken;
            }
        }
    )
}

助けてください!

4

1 に答える 1

3

はい、見出しはセクションの一部です。したがって、置き換えたくない(または削除したくない)場合は、テキストの一部として送信する必要があります。ただし、セクションを完全に上書きしたくない場合は、セクションのテキスト[コンテンツ]を既に照会していますね。

ところで:mw.user.tokens手動でトークンを取得する代わりに、マップを使用してトークンを取得することもできます。

于 2012-09-20T19:35:11.427 に答える