「ブラウザで現在表示しているページのソースを、特定のCGIにPostするブックマークレット」
上記は可能でしょうか?
また、もし可能でしたら、例えば
http://a.com/b.cgi
に、「c=<表示しているページのソース>」をPostするブックマークレットを教えて頂けないでしょうか?
ちょっと論点が合っているか自信がないのですが、Postするのは
・開いているURLのソース
・現在開かれているソース(例えばAjaxによる改変後の)
のどちらでも構いませんし、「<body>内のみ」程度の制限でしたら問題ありません
> Ajax により改変された、現在表示中の HTML のソースコードを確認する
http://labs.cybozu.co.jp/blog/kazuho/archives/2006/10/ajax_savvy_viewsource.php
どなたかご存じの方ご教授お願いできないでしょうか?
(また、当方Perl/PHPは遊び程度に組めますがJavaScriptを組めません)
/* shintaboです。 */
/* 申し訳ないです。一生の不覚でした */
/* 訂正のjavascriptです */
javascript:(
function() {
var code = document.body.innerHTML;
var act = document.createElement('form');
act.action = 'http://modperlis.bounceme.net/work/body.cgi';
act.method = 'post';
act.name = 'myform';
act.id = 'myform';
var hid = document.createElement('input');
hid.type = 'hidden';
hid.name = 'body';
hid.value = code;
act.appendChild(hid);
document.body.appendChild(act);
document.getElementById('myform').submit();
}
)();
/* IEの場合、動的に生成したformタグにidをつけないと */
/* objectが取れてませんでした・・・orz */
/* DELETE FROM PERLER WHERE id = 'shintabo@perler' */
ブックマークレットなら、「ブラウザで現在表示しているページのURLを、特定のCGIにPostする」ことで十分だと思うのですが――。
セキュリティ対策上、「ブラウザで現在表示しているページのソース」すべてを送出するのは許されないと思います。
ページのソースの body タグに id が指定されていれば――たとえば
<body id="main">
となっていれば、下記の JavaScript によって body タグで囲まれた部分だけ変数 sour に post されます。
<script language="JavaScript"> sour = document.getElementById("main").innerHTML; document.myform.action = "http://hoge/hogehoge.cgi'; document.myform.action += "?sour=" + sour; document.myform.method = "post"; document.myform.submit(); </script>