¿Cómo desinfectar la entrada del usuario a la URL con una llamada amp-bind-macro?

Introducción: a veces es posible que desee sanear su entrada a la URL de búsqueda de Google, esto se puede lograr con la ayuda de amp-bind-macro. Se puede usar para crear una URL desinfectada dinámicamente. Se puede lograr una URL desinfectada simplemente convirtiendo la entrada a minúsculas y reemplazando los espacios con ‘%20’ .

Configuración: para usar amp-bind-macro en nuestra página AMP, debemos importar el script amp-bind en el encabezado del documento.

<script async custom-element="amp-bind" src=
"https://cdn.ampproject.org/v0/amp-bind-0.1.js">
</script>

Ejemplo:

<!DOCTYPE html>
<html amp>
  
<head>
    <title>GeeksForGeeks | amp-bind-macro</title>
    <meta charset="utf-8" />
      
    <script async 
        src="https://cdn.ampproject.org/v0.js">
    </script>
  
    <link rel="canonical" href=
"https://amp.dev/documentation/examples/components/amp-bind-macro/index.html"/>
  
    <meta name="viewport" content="width=device-width,
        minimum-scale=1, initial-scale=1" />
  
    <!-- Import the `amp-bind` component
        to use `amp-bind-macro`. -->
    <script async custom-element="amp-bind" 
src="https://cdn.ampproject.org/v0/amp-bind-0.1.js">
    </script>
  
    <style amp-boilerplate>
        body {
            -webkit-animation: -amp-start 8s 
                steps(1, end) 0s 1 normal both;
  
            -moz-animation: -amp-start 8s 
                steps(1, end) 0s 1 normal both;
  
            -ms-animation: -amp-start 8s
                steps(1, end) 0s 1 normal both;
  
            animation: -amp-start 8s
                steps(1, end) 0s 1 normal both;
        }
  
        @-webkit-keyframes -amp-start {
            from {
                visibility: hidden;
            }
  
            to {
                visibility: visible;
            }
        }
  
        @-moz-keyframes -amp-start {
            from {
                visibility: hidden;
            }
  
            to {
                visibility: visible;
            }
        }
  
        @-ms-keyframes -amp-start {
            from {
                visibility: hidden;
            }
  
            to {
                visibility: visible;
            }
        }
  
        @-o-keyframes -amp-start {
            from {
                visibility: hidden;
            }
  
            to {
                visibility: visible;
            }
        }
  
        @keyframes -amp-start {
            from {
                visibility: hidden;
            }
  
            to {
                visibility: visible;
            }
        }
    </style>
  
    <noscript>
        <style amp-boilerplate>
            body {
                -webkit-animation: none;
                -moz-animation: none;
                -ms-animation: none;
                animation: none;
            }
        </style>
    </noscript>
      
    <style amp-custom>
        h1 {
            color: forestgreen;
        }
    </style>
</head>
  
<body>
    <center>
        <h1>GeeksForGeeks</h1>
    </center>
  
    <!-- The `replaceSpace` expression defined
        in `amp-bind-macro` replaces spaces in
        user input with `s/ /%20/` and sets all
        letters to lowercase to match url format
        for Google search -->
    <div style="left: 0.5em; position: absolute;">
        <amp-bind-macro id="replaceSpace" 
            arguments="str" expression=
            "str.toLowerCase().split(' ').join('%20')">
        </amp-bind-macro>
  
        <p>
            Type in something you want 
            to search with spaces
        </p>
  
        <input type="text" placeholder="Search Query"
            on="input-throttled:AMP.setState(
                { argumentString: event.value })" />
  
        <p="'You have create a sanitized link:'
            ' https://www.google.com/search?q='
            'replaceSpace(argumentString)">
            Your sanitized link will display 
            here. You can copy and paste into
            search bar to test.
        </p>
    </div>
</body>
  
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *