Pregunta

¡Me está costando mucho escribir lo que debería ser una simple declaración if!Necesito que diga si mod no es igual a a, b o c, entonces haga esto.Esto es lo que estaba intentando pero no tuve éxito:

var mod = CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   doSomething();
}

Cuando escribo esto en mi editor, dice que hay un error, específicamente que "el nombre de la entidad debe seguir inmediatamente el '&' en la referencia de la entidad". ..y no funciona cuando voy a la prueba.

¡¡Cualquier ayuda se agradece!!


ACTUALIZAR:La URL:esber.squarespace.com

El guión completo:

<script type="text/javascript" src="/storage/scripts/sessvars.js"></script>
<script type="text/javascript">
<![CDATA[ 

onload=function(){
 sessvars.browserConfirmation?'none':'';
 sessvars.ageConfirmation?'none':'';
}; 

var mod = Squarespace.Constants.CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   if(sessvars.ageConfirmation != "yes"){
      window.location = "/verify/";
   };
};

]]>
</script> 

Quiero que cada página del sitio redirija automáticamente al cargar la página a la página de verificación, a menos que sea la página de verificación (/verify), la página "No estás verificado" (/not-verified) o la página de inicio de sesión (/ login) - a menos que el usuario ya haya verificado configurando los sessvars, entonces puede continuar con la página de inicio.

Para probar esto, voy a esber.squarespace.com y hago clic en uno de los elementos del menú de la derecha (este menú eventualmente se ocultará cuando termine con la página), cuando intento ir a otra página sin verificar mi Primero, debería ser redirigido a la página /verificar, pero eso no sucede.

Si reviso el guión para:

<script type="text/javascript" src="/storage/scripts/sessvars.js"></script>
<script type="text/javascript">

onload=function(){
 sessvars.browserConfirmation?'none':'';
 sessvars.ageConfirmation?'none':'';
}; 

var mod = Squarespace.Constants.CURRENT_MODULE_ID;
if (mod != "5827289") {
   if(sessvars.ageConfirmation != "yes"){
      window.location = "/verify/";
   };
};

</script> 

Entonces funciona bien (?)

¿Fue útil?

Solución

Prueba esto:

// <![CDATA[ 

onload=function(){
 sessvars.browserConfirmation?'none':'';
 sessvars.ageConfirmation?'none':'';
}; 

var mod = Squarespace.Constants.CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   if(sessvars.ageConfirmation != "yes"){
      window.location = "/verify/";
   };
};

// ]]>

Si esto no funciona, deje el código de allí por un poco, así que podemos depurar directamente en su sitio web

Otros consejos

Envolver la secuencia de comandos en una sección CDATA.

<script type="text/javascript">
<![CDATA[

// script here

]]>
</script>

Probé EXACTAMENTE el mismo código que el tuyo y funciona bien:

function doSomething() {alert("doing");}
var CURRENT_MODULE_ID = 5195103000;
var mod = CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   doSomething();
}

Hizo "algo".Cuando el valor se cambia a 5195103, no sucede nada, lo cual es correcto

Dejando a un lado el editor, ¿cuál es el error del script cuando lo ejecutas y cuál es el navegador que utilizaste?Sospecho que podría ser un error en otra parte o quizás relacionado con CURRENT_MODULE_ID ?

¿Está incrustando este JavaScript en un documento XML?

Parece que el documento XML no está bien formado, tal vez porque el y debe escapó y

El Javascript por sí mismo se ve bien yo también

Probar:

var mod = CURRENT_MODULE_ID;
if (mod != "5827289" &amp;&amp; mod != "5195103" &amp;&amp; mod != "5181422") {
   doSomething();
}

Usted se dará cuenta de esa manera si el javasciprt necesita ser escapado

Editar en respuesta al comentario:

Pruebe lo siguiente:

<script type="text/javascript">
<![CDATA[
var mod = CURRENT_MODULE_ID;
if (mod != "5827289" && mod != "5195103" && mod != "5181422") {
   doSomething();
}
]]>
</script>

Parece que su editor sólo piensa que está trabajando con un documento XML. ¿Ha intentado ejecutar realmente esto en un navegador? Si es así, ¿el navegador también dan un error?

¿Estás tratando de comparar el ID como una cadena o valor? ¿Usted intentó sin comillas?

var mod = CURRENT_MODULE_ID;
if (mod != 5827289 && mod != 5195103 && mod != 5181422) {
   doSomething();
}

u otro método sería el uso de fósforo

var mod = CURRENT_MODULE_ID;
if (!mod.match("5827289|5195103|5181422")) {
   doSomething();
}

Tengo este error dentro de una sección de secuencia de comandos en un archivo XSL.

  

Entidad 'y' no definido

He adaptado la respuesta anterior dentro de mi escritura y funcionó.

Tenga en cuenta la sección CDATA en el segmento siguiente código

<script>
  var  Quantity860=<xsl:value-of select="$QuantityOrdered_860" />;
  var  Quantity850=<xsl:value-of select="$QuantityOrdered_850" />;
  var  QuantityToReceive860=<xsl:value-of select="$QuantityLeftToReceive_860" />;

  if(parseFloat(Quantity860.textContent) !== parseFloat(Quantity850.textContent) <![CDATA[ && ]]> parseFloat(QuantityToReceive860.textContent) !== parseFloat(Quantity850.textContent))
  {
      Quantity860.style.color="#FF6347";
      Quantity850.style.color="#FF6347";
      QuantityToReceive860.style.color="#FF6347";
  }
</script>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top