如何使用书签通过API的HTTP POST将文本粘贴到pastebin站点?

时间:2011-08-31 13:38:40

标签: bookmarklet

我想通过网站的API将一些文本粘贴到pastebin网站。

正如我所知(我对编程知识有限)我需要做两件事:首先处理所选文本,然后通过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 个答案:

答案 0 :(得分:1)

您必须以编程方式创建表单,添加所需的字段,然后在JavaScript中发布所有字段。

以下是一个示例 - 您至少需要更改网址和字段名称:

<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和fieldname,那么您可以通过搜索替换来实现这一点:

您还应该删除我的示例中包含的第二个字段(some_field_1,somefield_value_1)。