Question

Comment puis-je inclure un bookmarklet dans un document analysé Markdown? Existe-t-il un & tag; tag " pour démarque qui dit fondamentalement "ne pas analyser ce" ??

Par exemple, vous pourriez avoir quelque chose comme:

<a href="javascript:function my_bookmarklet()
                {alert('Hello World');}
                my_bookmarklet();">Hello</a>

Mais si j'essaie de passer le javascript à partir de cela dans un lien dans le démarquage comme ceci:

[Hello World!](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)

Vous obtenez un lien gâché, comme ci-dessous.

[Bonjour tout le monde!] (javascript: function mon_bookmarklet () {alert ('Bonjour tout le monde');} mon_bookmarklet ();)

Y a-t-il un moyen de contourner ce problème?

Et non, je n'essaye pas de mettre des bookmarklets malveillants dans SO ou quoi que ce soit, mais je veux utiliser le markdown pour mon site et je voudrais poster quelques bookmarklets que j'ai écrits.

Edit: Je pensais avoir la réponse ... mais maintenant, il semble que je ne l’aie pas tout à fait.

Cela semble bien fonctionner dans WMD et showdown, mais dans l'éditeur Markdown.php, cela ne fonctionne pas. Quelqu'un a-t-il de l'expérience avec Markdown.php spécifiquement?

Était-ce utile?

La solution

Markdown laissera n'importe quel code HTML seul, vous pouvez donc entrer

<a href="javascript:function my_bookmarklet()
                {alert('Hello World');}
                my_bookmarklet();">Hello</a>

et obtenez Hello. Edit: ne fonctionne plus sous SO, ce qui est une bonne chose

Vous pouvez également échapper des caractères spéciaux avec une barre oblique inversée (dans ce cas, la fin de l'URL est indiquée par les ")" dans votre code Javascript) et la syntaxe du lien fonctionnera:

[Hello](javascript:function my_bookmarklet(\){alert('Hello World'\);}my_bookmarklet(\);)

donne [Hello] (javascript: function my_bookmarklet () {alert ('Bonjour tout le monde');} my_bookmarklet ();)

Autres conseils

[Hello World!][1]
[1]:javascript:alert('Hello World')

Je sais que la question est très ancienne, mais (si quelqu'un d'autre trouve son chemin ici, comme je l'ai fait), si vous codez l'URL de votre script, cela fonctionnera.

Par exemple:

    [Hello World](javascript:%28function%28%29%7Balert%28%22Hello%20World%22%29%7D%29%28%29%3B)

Et bien sûr, comme mentionné ci-dessus, cela ne fonctionne pas ici, sur SO.

Remarque: certains encodeurs d'URL vont remplacer l'espace ("") par un "+", ce qui fonctionne bien pour les URL normales, mais pas le code js, les espaces doivent être remplacés par "% 20"

MODIFIER : cela ne semble pas être vrai pour tous. Je suppose que l'analyseur de démarques spécifique effectue l'appel final ici. Mais cela fonctionne pour moi dans plus d'endroits où le démarquage est utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top