2008-10-14 12 views
13

¿Cómo puedo incluir un bookmarklet en un documento analizado Markdown? ¿Hay alguna "etiqueta" para el descuento que básicamente dice "no analizar esto"?Enlace de Bookmarklet en el documento de reducción

Por ejemplo, podría tener algo como:

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

Pero si intento más allá de la javascript en las que en un eslabón de reducción del precio de esta manera:

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

Se obtiene un enlace en mal estado , como abajo.

[Hello World!] (Javascript: my_bookmarklet función() {alert ('Hola mundo');} my_bookmarklet();)

¿Hay alguna forma de evitar esto?

Y no, no estoy tratando de poner bookmarklets maliciosos en SO o nada, pero quiero utilizar el descuento para mi sitio y me gustaría publicar algunos bookmarklets que escribí.

Editar: Pensé que tenía la respuesta ... pero ahora parece que no la tengo del todo.

Esto parece funcionar muy bien en WMD y showdown, pero en el editor Markdown.php, no lo hace. ¿Alguien tiene experiencia con Markdown.php específicamente?

Respuesta

4

de rebajas deja ningún HTML solo, por lo que sólo puede entrar

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

y obtener Hola.edición: ya no funciona en SO, que es una buena cosa

También puede escapar caracteres especiales con una barra invertida (en este caso se trata de ver el ")" s en su Javascript como el final de la URL) y la sintaxis de enlace funcionará:

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

da [Hola] (javascript: función my_bookmarklet() {alert ('Hola mundo');} my_bookmarklet();)

+0

Esto hace no parece que funcione para mí, al menos en SO Chat. – nyuszika7h

+2

El comportamiento predeterminado de Markdown es dejar HTML en línea solo para que los ejemplos funcionen si usa Markdown en su propio sitio. Sin embargo, cualquier sitio que muestre contenido enviado por el usuario debe restringir el HTML que permite para protegerlo contra XSS. Es un pequeño paso desde ese ejemplo de 'alerta ('Hello World')' para secuestrar las cuentas SO de otras personas. Mirando hacia atrás, me sorprende que esos ejemplos funcionen originalmente en mi respuesta. Realmente no deberían haberlo hecho, y ya no. – stevemegson

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