Variable un Href en específico

Iniciado por rafaeljoseyepez, 3 Septiembre 2020, 00:38 AM

0 Miembros y 1 Visitante están viendo este tema.

rafaeljoseyepez

Buenas tardes, necesito ayuda con un script de Greasemonkey que estoy haciendo...

Una página tiene un botón que dice ejemplo "INICIAR AQUÍ" y al hacerle click va a una URL como esta: https://link.myurllinks.com/xxxxxxxx/inicio?MyID=ABCDE9cAnuAwAOZ3WT2NlyEYpVh9jQ

Lo que quiero que haga el script es que en la página en lugar de decir "INICIAR AQUÍ", diga parte del link (especificamente desde el caracter 49 al 54, es decir lo que se ve en rojo en el link de arriba, y pues logré hacerlo, con algo como esto:

Código (javascript) [Seleccionar]
$("a").each(function() {
    var PSID = this.href;
    $(this).attr('start-button', PSID);
    $(this).text(PSID.substring(49,54));
     
});


y funciona perfecto, cumple con lo que quería, el problema es que me toma todos los href de la página y no solamente el botón, y quisiera saber como resolver eso...


Código (html4strict) [Seleccionar]
<form id="startForm" action="survey" method="post">
                                        <div id="links">
                                                  <a id="start-button" href="inicio?MyID=ABCDE9cAnuAwAOZ3WT2NlyEYpVh9jQ" onclick="_gaq.push(['_trackEvent', 'StartSurvey Button', 'Click', 'Offer Page']);">
                                                  LET'S BEGIN
                                                  </a>
                                        </div>
                              </form>


al establecer como variable this.href me tomará todos los href de la página, no sé si es posible establecer como variable el id "start-button" de modo que tome solamente el botón y no todos los href de la página....

De antemano muchas gracias, aclaro que mi conocimiento en javascript es muy poco, solo logré hacer el código leyendo y viendo ejemplos por Internet


.:Xx4NG3LxX:.

No soy experto, pero prueba esto:

Código (javascript) [Seleccionar]
$("a#start-button").each(function() {
    var PSID = this.href;
    $(this).attr('start-button', PSID);
    $(this).text(PSID.substring(49,54));

});


No se sí funcionará en tu caso.
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



Agente Naranja

Cuando usas jQuery para seleccionar elementos, puedes especificar su ID o su clase. Tu código inicial era:

Código (javascript) [Seleccionar]
$("a")

"a" significa "todos los elementos con etiqueta <a>". Lo que puedes hacer es añadir un punto . para seleccionar por clases, por ejemplo "a.boton" significa "Todos los elementos A que tengan clase boton" o el # para los ids, por ejemplo "a#boton" significa "todos los elementos A que tengan id boton".

En tu caso el elemento es:

Código (html4strict) [Seleccionar]
<a id="start-button" href="inicio?MyID=ABCDE9cAnuAwAOZ3WT2NlyEYpVh9jQ" onclick="_gaq.push(['_trackEvent', 'StartSurvey Button', 'Click', 'Offer Page']);">
LET'S BEGIN
</a>


Como ves, tiene un id "start-button". Puedes usar este ID para limitar tu selección, en vez de "todos los elementos A" con $("a") puedes hacer $("a#start'button"), que es lo mismo que te ha explicado 4NG3L  ;D

@XSStringManolo

Código (javascript) [Seleccionar]
var enlace = document.querySelector("#start-button");
enlace.innerText = enlace.href.substr(49, 5);


Se obtiene el elemento HTML a y se asigna una referencia a una variable enlace utilizando querySelector y un selector por id como parámetro ya que el id en HTML presume ser un elemento único en toda la web.
Se obtiene el atributo href del elemento como string y se obtiene un subStr con el método substr del tipo referenciado String. El primer parámetro es la posición inicial/primer elemento del substring. El segundo parámetro (se puede omitir para obtener el substr hasta el final) es el número de caracteres a obtener.
Se asigna este a la propiedad innerText, homólogo de innerHTML pero que inhabilita la ejecución indeseada de código poco probable (pero posible) al utilizar cadenas con cierto rango de aletoriedad.

Como aclaración los elementos a no son botones. Tienes botones de verdad como <button type="button">Click</button>