문제

나는 간단한 if 문장 인 것처럼 보이는 것을 쓰는 데 어려움을 겪고 있습니다! 모드가 a, b 또는 c와 같지 않은지 말해야합니다. 여기에 내가 시도했지만 실패했습니다.

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

이것을 편집기에 입력하면 "엔티티 이름이 즉시 엔티티 참조에서 '&'를 따라야한다"는 오류가 있다고 말합니다. .. 테스트를 할 때 작동하지 않습니다.

모든 도움이 감사합니다 !!


업데이트 : URL : esber.squarespace.com

전체 스크립트 :

<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> 

사이트의 모든 페이지가 페이지에서 페이지로드를 자동으로 REDIFIFY 페이지로 자동 리디렉션하기를 원합니다. 페이지가 확인 페이지 (/verify), "확인되지 않음"페이지 (/not-Verified) 또는 로그인 페이지 (/ 로그인) - 사용자가 Sessvars를 설정하여 이미 확인하지 않는 한 홈페이지로 계속 될 수 있습니다.

이것을 테스트하려면 esber.squarespace.com으로 이동하여 오른쪽의 메뉴 항목 중 하나를 클릭합니다 (이 메뉴는 페이지가 완료되면 결국 숨겨집니다) - 내 내 페이지로 이동하려고 할 때 내 메뉴는 내 내 페이지로 이동하려고 할 때 먼저 나이에 나는 /확인 페이지로 다시 방향을 바꿔야하지만 일어나지 않습니다.

스크립트를 수정하면 :

<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> 

그런 다음 잘 작동합니다 (?)

도움이 되었습니까?

해결책

이 시도:

// <![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/";
   };
};

// ]]>

이것이 작동하지 않으면 코드를 조금만 남겨두면 웹 사이트에서 직접 디버깅 할 수 있습니다.

다른 팁

CDATA 섹션에 스크립트를 감싸십시오.

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

// script here

]]>
</script>

나는 당신의 것과 똑같은 코드를 시도했는데 잘 작동합니다.

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

'복용량'을했습니다. 값이 5195103으로 변경되면 올바른 일이 발생하지 않습니다.

편집기를 제쳐두고, 스크립트 오류는 무엇입니까? 실행할 때 스크립트 오류는 무엇이며 사용한 브라우저는 무엇입니까? 나는 그것이 다른 곳에서 또는 아마도 관련된 오류 일 수 있다고 생각합니다. CURRENT_MODULE_ID ?

이 JavaScript를 XML 문서에 포함시키고 있습니까?

XML 문서가 잘 형성되지 않은 것 같습니다.

JavaScript 자체는 나도 괜찮아 보입니다

노력하다:

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

Javasciprt가 탈출 해야하는지 여부를 알게 될 것입니다.

의견에 대한 응답으로 편집 :

다음을 시도하십시오.

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

편집자가 XML 문서로 작업하고 있다고 생각하는 것 같습니다. 실제로 브라우저에서 이것을 실행 해 보셨습니까? 그렇다면 브라우저도 오류가 발생합니까?

ID를 문자열 또는 값으로 비교하려고합니까? 인용문없이 시도 했습니까?

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

또는 다른 방법은 일치를 사용하는 것입니다

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

XSL 파일의 스크립트 섹션 내 에서이 오류가 발생했습니다.

엔티티 '&'정의되지 않았습니다

스크립트 내에서 위의 답변을 조정했는데 효과가있었습니다.

아래 코드 세그먼트의 cdata 섹션에 주목하십시오

<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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top