Ссылка на букмарклет в документе Markdown
-
03-07-2019 - |
Вопрос
Как включить букмарклет в анализируемый документ Markdown?Есть ли какой-нибудь «тег» для уценки, который по сути говорит «не анализировать это»??
Например, у вас может быть что-то вроде:
<a href="javascript:function my_bookmarklet()
{alert('Hello World');}
my_bookmarklet();">Hello</a>
Но если я попытаюсь вставить JavaScript из этого в ссылку в уценке следующим образом:
[Hello World!](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)
Вы получаете перепутанную ссылку, как показано ниже.
[Привет, мир!](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)
Есть ли что-нибудь вокруг этого?
И нет, я не пытаюсь поместить вредоносные букмарклеты в SO или что-то в этом роде, но я хочу использовать уценку для своего сайта и хотел бы опубликовать несколько написанных мной букмарклетов.
Редактировать:Я думал, что у меня есть ответ... но теперь кажется, что у меня его нет.
Кажется, это отлично работает в WMD и Showdown, но в редакторе Markdown.php — нет.У кого-нибудь есть опыт работы с Markdown.php?
Решение
Markdown оставит любой HTML-код без изменений, поэтому вы можете просто ввести
<a href="javascript:function my_bookmarklet()
{alert('Hello World');}
my_bookmarklet();">Hello</a>
и получить привет. Редактировать:Больше не работает на SO, и это хорошо.
Вы также можете экранировать специальные символы обратной косой чертой (в этом случае в вашем Javascript в конце URL-адреса будут отображаться символы «)»), и синтаксис ссылки будет работать:
[Hello](javascript:function my_bookmarklet(\){alert('Hello World'\);}my_bookmarklet(\);)
выдает [Привет](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)
Другие советы
[Hello World!][1]
[1]:javascript:alert('Hello World')
Я знаю, что это очень старый вопрос, но (на случай, если кто-то еще найдет здесь дорогу, как я), если вы закодируете свой скрипт по URL-адресу, он будет работать.
Например:
[Hello World](javascript:%28function%28%29%7Balert%28%22Hello%20World%22%29%7D%29%28%29%3B)
И конечно, как уже говорилось выше, здесь, на SO, это не работает.
Примечание:Некоторые кодировщики URL-адресов заменяют пробел (" ") на "+", который отлично работает для обычных URL-адресов, но не для кода js, пробелы следует заменять на "%20".
РЕДАКТИРОВАТЬ:Это не кажется универсальным.Я полагаю, что последний вызов здесь делает конкретный анализатор уценки.Но у меня это работает во многих местах, где используется уценка.