2011-01-21 65 views
3

我々は、すべてのブックマークレットは何も私たちは、彼ら を行うことが意図されている機能に応じてそれらをクリックしたときに、私たち のためのいくつかのことを行う、いくつかの 実行可能なJavaScriptコードではないことを知っている...私の質問は:についてはブックマークレットを「デコンパイル」する方法

たとえば、私はブックマークレットを持って、知らない、このような何か:

javascript:void(window.open('http://www.pdfdownload.org/web2pdf/Default.aspx?left=0&right=0&top=0&bottom=0&page=0&cURL='+document.location.href)); 

私の知る限り理解し、(「&のcURL =」ものと)ブックマークレットのコードがであるURLを取ります結果を得るためにブラウザのアドレスバーを使用して何かをしてください。ブックマークレットのいくつかのパラメータを変更することで、同様のことを選択して行うことができます(「Googleマップの検索選択」と同様)およびその他のものを変更します。

ブックマークレットをフォームから希望のデータ(この場合はURL)に変換するには、どのように「逆コンパイル」できますか?

例えば、上記のブックマークレットをWebページで使用して、ユーザーがURLを入力して結果を取得するためのボタンをクリックするフォームを提供したいとします。

私は「?URL =」

はどのようにして、フォームにブックマークレットの機能を渡すことができますから「=?の入力」からURLを取得し、他のブックマークレットを見て、他てきましたか?

+0

手でブックマークレットを解体したい、あるいは自動的にフォームを生成したいですか? – outis

答えて

0

ブックマークレットでは、実際に変数の代わりにprompt('Please enter a URL', 'default value')を使用するのが最も簡単です。現在のWebページにフォームを表示するのは面倒です。

ユーザが入力した値が1つだけ必要な場合は、prompt()は、ユーザに詳細を尋ねるための使いやすい代替手段です。 (もちろん、あなたも、複数のprompt()のコールを使用することができますが、これはおそらく混乱し、ユーザーにつながる)

+0

@BalusC:すぐにお返事ありがとうございます。上記のブックマークレットに「プロンプト」を適用するにはどうすればよいですか?ブックマークレットが "?input ="または "?url ="プロンプトはどのように機能しますか?どのように私はそれらのブックマークレットに統合するために管理できますか? – Jmlevick

+0

私はあなたが私を意味すると思います。さて、 'javascript:void(window.open( 'http://www.pdfdownload.org/web2pdf/Default.aspx?left=0&right=0&top=0&bottom=0&page=0&cURL='+prompt(' URLを入力 ') )); ' – akirk

+0

もう一度、ありがとうございました。 – Jmlevick

0

このような何か試してみてください:

<form method="get" action="http://www.pdfdownload.org/web2pdf/Default.aspx"> 
<input type="hidden" name="left" value="0"> 
<input type="hidden" name="right" value="0"> 
<input type="hidden" name="top" value="0"> 
<input type="hidden" name="bottom" value="0"> 
<input type="hidden" name="page" value="0"> 
<input type="text" name="cURL"> 
<input type="submit"> 
</form> 
0

たぶん、あなたはあなたのブックマークレット内のJavaScriptファイルを呼び出すことができます。

javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('src','http://www.example.com/js.js');document.body.appendChild(e)})()) 

そして、あなたはjs.js

var site = location.href; 
document.body.innerHTML += "<div style='background-color:white;z-index:1000;position:fixed;right:0;top:0' width='300' height='250'><iframe src='http://www.example.com/bookmarklet.php?q=" + site + "' /></div>"; 
上のiframeを作成
関連する問題