Как я могу вставить текст на сайт вставки через HTTP POST API, используя букмарклет? - PullRequest
0 голосов
/ 31 августа 2011

Я хочу вставить некоторый текст на сайт для вставки через API сайта.

Как я понял (у меня ограниченные знания в области программирования), мне нужны две вещи: сначала обработать выделенный текст, а затем отправить его через HTTP POST на сайт pastebin.

Я пытался сделать это ...

javascript:'<body%20onload="document.forms[0].submit()"><form%20method="post"%20action="http://sprunge.us"><input%20type="hidden"%20name="sprunge"%20value="+ document.getSelection() +"></form>'

.... которая (как вы уже догадались!) Возвращает мне КАЖДЫЙ РАЗ страницу, на которой выделенным текстом является "+ document.getSelection () +".

Любая помощь?

1 Ответ

1 голос
/ 01 сентября 2011

Вы должны создать форму программным способом, добавить необходимые поля, а затем опубликовать - все в JavaScript.

Вот пример - вам по крайней мере придется изменить URL-адрес и имя поля:

<a href="
    javascript:(function(){
        var myform = document.createElement('form');
        myform.method='post';

        /* change this URL: */
        myform.action='http://my-example-pastebin.com/submit.php';

        /* The goodies go here: */
        var myin=document.createElement('input');
        /* Change the fieldname here: */
        myin.setAttribute('name','fieldname_for_pasted_text');
        myin.setAttribute('value',document.getSelection());
        myform.appendChild(myin);

        /* If you need another field for username etc: */
        myin=document.createElement('input');
        myin.setAttribute('name','some_field_1');
        myin.setAttribute('value','some_field_value_1');
        myform.appendChild(myin);

        myform.submit();
    })()
">Bookmarklet for posting selected text to an online pastebin</a>

Вышеуказанное сжато без комментариев и разрывов строк:

<a href="javascript:(function(){var myform = document.createElement('form'); myform.method='post'; myform.action='http://my-example-pastebin.com/submit.php'; var myin=document.createElement('input'); myin.setAttribute('name','fieldname_for_pasted_text'); myin.setAttribute('value',document.getSelection()); myform.appendChild(myin); myin=document.createElement('input'); myin.setAttribute('name','some_field_1'); myin.setAttribute('value','some_field_value_1'); myform.appendChild(myin); myform.submit();})()">Bookmarklet for posting selected text to an online pastebin</a>

Я не знаком с sprunge.us , но если у вас есть URL иимя поля прямо в вашем примере, вы можете заставить это работать с помощью поиска-замены:

Вам также следует удалить второе поле (some_field_1, somefield_value_1), включенное в мой пример.

...