如何“反编译”书签?

时间:2011-01-21 23:29:15

标签: javascript html forms bookmarklet

我们都知道bookmarklet只不过是一些 可执行的javascript代码,为我们做一些事情 当我们根据它们的功能点击它们时 打算......我的问题是:

例如,我有一个Bookmarklet,不知道,像这样:

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));

据我所知,bookmarklet代码(带有“& cURL =”的东西)获取浏览器地址栏中的URL,然后用它做一些事情以获得结果。通过更改书签中的一些参数(与“谷歌地图中的搜索选择”一样)和其他一些参数,可以通过选择完成类似的操作。

我如何“反编译”书签,以便从表单中获取所需的数据(在本例中为URL)?

例如,假设我想在网页中使用上面的书签来提供一个表单,让用户输入一个URL,然后单击一个按钮来获得结果。

我见过其他小书签从“?input =”获取网址,其他小网页从“?url =”

获取

如何将bookmarklet的功能传递给表单?

3 个答案:

答案 0 :(得分:0)

在小书签中,使用prompt('Please enter a URL', 'default value')代替变量实际上最简单。在当前网页中显示表单相当麻烦。

如果您只需要一个用户输入的值,prompt()是一个易于使用的替代方案,可以向用户询问更多信息。 (当然你也可以使用多个prompt()调用,但这可能会导致用户混淆)

答案 1 :(得分: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>

答案 2 :(得分: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

上创建了一个iframe
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>";