2012-08-31 5 views
16

중단 점에서 아무 것도하려고하면 사파리 콘솔에서이 오류가 발생합니다. 여기 버그 리포트 : https://bugs.webkit.org/show_bug.cgi?id=83267SyntaxError : 'with'문이 엄격 모드에서 유효하지 않습니다.

해결 방법이 있습니까? 내가 자바 스크립트와 관련 있다고 추측하는 이유 때문에 사파리에서 내 사이트에서 실행이 중지되었습니다.

편집 : 버그 보고서에는 재현 단계도 포함되어 있습니다.

다른 편집 : "with"문을 사용하고 있지 않습니다. 이것은 사파리 콘솔의 버그입니다.

+1

Safari와 관련된 것은 아닙니다. FF/Chrome에서 'strict 모드 코드에는'구문이 포함될 수 없습니다. '라는 메시지가 표시됩니다. –

+11

사파리에만 해당되는 점은 디버거 콘솔에서 엄격한 ";"범위 내에서 디버거 콘솔을 평가하려고하면 스크립트에서 "with"라는 단어를 볼 수없는 경우에도이 오류가 발생한다는 것입니다 또는 입력 한 내용으로 분명히 Safari는'with '로 타이핑 한 내용을 감싸서 평가하려고합니다. 자세한 내용은 참조 된 버그 보고서를 참조하십시오. –

+1

[가능한 엄격한 모드를 사용할 때 범위 변수를 검사 할 수 없습니다] (http://stackoverflow.com/questions/8545191/cant-inspect-scope-variable-when-using-strict-mode) –

답변

6

with(obj) {} 문은 더 이상 사용되지 않으며 엄격한 모드에서는 유효하지 않습니다.

이 문제를 해결하려면 엄격 모드를 사용 중지하거나 명령문과 함께 사용을 중지하십시오!

+0

나는 기술적으로 사용하지 않는 것 (사파리는 내부적으로 추측 할 수 있겠는가?)하지만 이것은 나의 doctype이다 : ... 이것은 "엄격한"것이이 문맥에서 의미하는 것인가? – quinn

+0

아니요. Strict 모드는 JS 파일 맨 위에 ""strict " '를 사용하여 활성화됩니다. – Eric

+3

그래서 나는 사파리가이 버그를 고칠 때까지 찾을 수있는 '사용 엄격'을 제거하는 것이 해결책이라고 생각하십니까? – quinn

2

엄격 모드 ECMAScript 5 금지. with 성명.

  • 하지 않도록 엄격 모드 (파일/함수로부터 "strict mode"; 줄을 제거), 또는
  • (권장) with 문을 사용하지 마십시오 - 그들은 유해 완전히 읽을 수 있습니다 : 당신은 두 가지 선택이있다.

엄격한 모드에 대한 자세한 내용은 John Resig : ECMAScript 5 Strict Mode, JSON, and More.

당신은 기사에서 그 엄격 모드 읽을 수 있습니다

  • 이 (delete foo;처럼) delete 변수에 당신이없는 수를 eval
  • 제한 사용,
  • 는 기능에 몇 가지 제한 사항 (추가 예를 들어 callercallee에 액세스),
  • with 문을 제거합니다.
+1

와 함께 사용하는 OP가 아니라 Safari 콘솔 코드입니다. – gotofritz