작업하지 않는 경우 및 (&&) 운영자
-
18-09-2019 - |
문제
나는 간단한 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" && mod != "5195103" && 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>