LINUX.ORG.RU

JS-букмарклетов

А по-русски? Вам нужно исполнить яваскрипт в контексте страницы?

:js with (content.wrappedJSObject) blah.blah

А если расскажете, что́ вам на самом деле нужно, может и найдется более порядочное решение.

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

:js with (content.wrappedJSObject) blah.blah

Спасибо, сработало. Осталось забиндить на удобные команды.

А если расскажете, что́ вам на самом деле нужно, может и найдется более порядочное решение.

Букмарклет для сохранения статьи в базу mendeley:

javascript:document.getElementsByTagName('body')[0].appendChild(document.createElement('script')).setAttribute('src','https://www.mendeley.com/minified/bookmarklet.js');
и ещё один для открытия её через sci-hub:
javascript:%20var%20url%20=%20location.href;%20if%20(url.substr(0,7)=='http://')%20url%20=%20url.substr(7);%20var%20url_parts%20=%20url.split('/');%20url%20=%20'http://'%20+%20url_parts[0]%20+%20'.sci-hub.io';%20if%20(url_parts.length>1)%20for%20(var%20i=1;i<url_parts.length;i++)%20url%20+=%20'/'+url_parts[%20i%20];%20window.open(url);

Axon ★★★★★
() автор топика
Ответ на: комментарий от Zmicier

Сделал так:

command! mendeley -description "Save to Mendeley" :js with (content.wrappedJSObject) javascript:document.getElementsByTagName('body')[0].appendChild(document.createElement('script')).setAttribute('src','https://www.mendeley.com/minified/bookmarklet.js');
command! scihub -description "Sci-hub this" :js with (content.wrappedJSObject) javascript: var url = location.href; if (url.substr(0,7)=='http://') url = url.substr(7); var url_parts = url.split('/'); url = 'http://' + url_parts[0] + '.sci-hub.ac'; if (url_parts.length>1) for (var i=1;i<url_parts.length;i++) url += '/'+url_parts[ i ]; window.open(url);
Работает как часы.

Axon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.