私はちょうどそのようなものを作りました。これが私のプロセスの内訳です。
さまざまな Web ページからの引用のリストを保持し、各引用に情報を追加する必要があります。
私のブックマークレットは、Google フォームを動的に生成します(作成済みの実際の Google フォームのソースを表示しました)。現在の URL、ページ タイトル、現在選択されているテキストが自動的に入力されます。フォームが送信されます。
手動で情報を追加する必要があるため、少なくとも 1 つの必須フィールドを意図的に含めなかったため、Google フォームにエラー メッセージが表示されます (ただし、URL、タイトル、引用符は既に入力されています)。これで、必要な他のすべての情報を手動で追加して、フォームを送信できるようになりました。
ブックマークレットがすべての必須フィールドに入力すると、Google フォームの成功応答「Thanks! Your response has been recording.」を受け取るだけです。
jQueryを使用するブックマークレットを生成するために、次のサイトを使用しました:
http://benalman.com/code/test/jquery-run-code-bookmarklet/ホームページより)
そのサイトを適切に使用できるようにするには、ワンライナーHTML をエスケープする必要があります (このエスケープ ツールを使用できます) 。
必要な手順は次のとおりです。
- Google フォーム / スプレッドシートを作成する
- フォームのソースを表示し、ブックマークレットで入力するフィールドをコピーします
- HTML をエスケープし、これを使用して情報を入力するスクリプトを記述します。このサイトはブックマークレットを作成します
だから私の場合:
1. URL を保持する 1 つのテキスト フィールド、ページのタイトルを保持する別のテキスト フィールド、引用 (選択したテキスト) を保持する段落テキストを含むフォームを作成しました。フォームには、手動で入力するその他の必須フィールドもいくつか含まれています。
2.次の html を用意しました。
<form method="POST"
action="https://spreadsheets.google.com/spreadsheet/formResponse?formkey=XYZXYZXYZXYZXYZXYZXYZ&ifq">
<input type="text" name="entry.0.single" value="" id="entry_0" />
<input type="text" name="entry.3.single" value="" id="entry_3" />
<textarea name="entry.2.single" id="entry_2"></textarea>
<input type="提出" name="提出" value="提出" />
</フォーム>
(entry_0 - URL、entry_3 - ページ タイトル、entry_2 - 引用)
3. 1 行にまとめてエスケープした後。次のスクリプトを使用しました。
frm = $(unescape('%3Cform%20action%3D%22https%3A//spreadsheets.google.com/spreadsheet/formResponse%3Fformkey%3DXYZXYZXYZXYZXYZXYZXYZ%26amp%3Bifq%22%20method%3D%22POST%22%3E%0A%3Cinput%20type%3D%22text%22%20name%3D%22entry.0.single%22%20value%3D%22%22%20id%3D%22entry_0%22%20/%3E%0A%3Cinput%20type%3D%22text%22%20name%3D%22entry.3.single%22%20value%3D%22%22%20id%3D%22entry_3%22%20/%3E%0A%3Ctextarea%20name%3D%22entry.2.single%22%20id%3D%22entry_2%22%3E%3C/textarea%3E%0A%3Cinput%20type%3D%22submit%22%20name%3D%22submit%22%20value%3D%22submit%22%20/%3E%0A%3C/form%3E'));
$(frm).children('#entry_0').attr('value',location.href);
$(frm).children('#entry_3').attr('value',$('title')[0].innerHTML);
$(frm).children('#entry_2').html(window.getSelection().toString());
$(frm).children('input[type=submit]').click()
この方法はクロムでテスト済みです。幸運を!