MediaWiki API:编辑部分而不破坏标题

时间:2012-09-20 18:49:28

标签: javascript mediawiki-api

我正在尝试编辑维基百科页面上的一个部分,但是当我这样做时,整个部分将被我通过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;
            }
        }
    )
}
请帮忙!

1 个答案:

答案 0 :(得分:3)

是的,标题是该部分的一部分。因此,如果您不想替换(甚至删除)它,则需要将其作为文本的一部分发送。但是,如果您不想完全覆盖某个部分,那么您已经查询了该部分的文字[内容],不是吗?

顺便说一下:您可以使用mw.user.tokens地图获取令牌,而不是手动检索它。