Как «декомпилировать» букмарклет? - PullRequest
3 голосов
/ 22 января 2011

Мы все знаем, что букмарклеты - это не что иное, как исполняемый код JavaScript, который делает некоторые вещи для нас, когда мы нажимаем на них в зависимости от функции, для которой они предназначены ... Мой вопрос:

* 1002Например, у меня есть 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));

Насколько я понимаю, код букмарклета (с элементом "& cURL =") принимает URL, который находится вадресную строку браузера, а затем сделать что-то с ним, чтобы получить результат.Нечто подобное можно сделать с помощью выбора, изменив некоторые параметры в букмарклете (как в случае с одним «Поиск в Google Картах») и некоторые другие.

Как я могу «декомпилировать» букмарклет, чтобы он взял нужные данные (в данном случае URL) из формы?

Например, допустим, я хочу использовать вышеуказанный букмарклет на веб-странице, чтобы предоставить форму, позволяющую пользователю ввести URL-адрес, а затем нажать кнопку, чтобы получить результат.

I 'видел другие букмарклеты, которые получают URL-адрес от "? input =", а другие - от "? url ="

Как передать функции букмарклета в форму?

Ответы [ 3 ]

0 голосов
/ 22 января 2011

Попробуйте что-то вроде этого:

<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 голосов
/ 29 января 2011

Может быть, вы можете вызвать файл 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)})())

И вы создаете iframe для 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>";
0 голосов
/ 22 января 2011

В букмарклете на самом деле проще всего использовать prompt('Please enter a URL', 'default value') вместо переменной.Отображение формы на текущей веб-странице довольно громоздко.

Если вам просто нужно одно введенное пользователем значение, prompt() - это простая в использовании альтернатива, чтобы запросить у пользователя дополнительную информацию.(Конечно, вы также можете использовать несколько вызовов prompt(), но это, вероятно, приведет к тому, что пользователь будет сбит с толку)

...