LightWindow & IE7, "라인 444 - 개체는 이 속성이나 메서드를 지원하지 않습니다."
-
09-06-2019 - |
문제
방금 LightWindow 및 IE7에서 페이지 로드 시 라인 444에 JavaScript 오류가 발생하는 문제를 수신하고 우회했습니다. lightwindow.js
, 다음과 같이 주장한다. object does not support this property or method
.다양한 포럼에서 다양한 게시물을 찾았음에도 불구하고 Google 검색 결과에 해결책이 없었으므로 나중에 누군가/나 자신에게 도움이 되기를 바라며 여기에 게시합니다.
많은 사람들이 스크립트 파일의 특정 순서를 제안했지만 저는 이미 이 순서(프로토타입, scriptaculous, lightwindow)를 사용하고 있었습니다.
다음은 제가 취한 단계로 마침내 효과가 있었던 것 같습니다. 어떤 단계가 문제를 구체적으로 "수정"했는지 알 수 없고 테스트할 시간도 없기 때문에 여기에 기록으로만 씁니다.
- lightwindow.js에 대한 호출을 페이지 하단으로 이동했습니다.
- 444행을 다음으로 변경했습니다.
if (this._getGalleryInfo(link.rel)) {
- 1157행을 다음으로 변경했습니다.
if (this._getGalleryInfo(this.element.rel)) {
- 마지막으로 1417~1474행을 다음과 같이 묶었습니다(더러워서 죄송합니다).
try/catch
블록, 예외를 삼키는 것입니다.
편집하다:
나는 이것이 Firefox를 깨뜨렸다는 것을 깨달았습니다.이제 445행에 다음을 추가하면 작동합니다. try { gallery = this._getGalleryInfo(link.rel); } catch (e) { }
아주 좋은 수정은 아니지만 내 페이지("rel" 태그가 없는 lightwindow 링크, "rel" 태그가 있는 여러 lightwindow 링크, 하나의 "inline" 링크가 포함되어 있음)는 이제 IE7에서 제대로 작동합니다.이 문제에 대해 추가할 내용이나 제공된 솔루션에 대한 문제/개선 사항이 있으면 의견을 말해주세요.
해결책
444행을 다음과 같이 변경하여 이 문제를 해결했습니다.
var gallery = this._getGalleryInfo(link.rel)
그런 다음 후속 비교 문을 다음과 같이 변경합니다.
if(gallery.length > 0)
{
// Rest of code here...
...IE6+에서 정렬하고 Firefox 등에서 계속 작동하는 것 같습니다.
1157행을 전혀 변경하지 않았지만 실제로 수행하는 작업을 확인하기 위해 코드를 읽지 않았으므로 관련성에 대해 언급할 수 없습니까?
나는?예제의 rel 속성(Evoution?[man])에 사용된 속성이 IE에 문제를 일으킬 수 있지만 몇 가지 사항을 테스트하는 데 시간을 들이지 않으면 확신할 수 없습니까?
HTH.
다른 팁
try..catch 대신 아마도 다음을 사용해 볼 수 있습니다.
if( this && this._getGalleryInfo )
{
//use the function
}
같은 방법으로 확인할 수도 있습니다 this.element.rel ( if(this && this.element && this.element.rel)
...) 사용하기 전에.
그런 경우도 있는 것 같더라구요 _getGalleryInfo
또는 this.element.rel
아직 초기화되지 않았으므로 아직 존재하지 않습니다.그것이 존재하는지 확인한 다음 그것을 사용하는지 확인하십시오.
물론 제가 완전히 틀렸을 수도 있습니다. 알 수 있는 유일한 방법은 테스트해 보는 것입니다.
Lightwindow 2.0, IE6, IE7, IE8(베타)에서도 동일한 문제가 발생했습니다.IE6, IE7, IE8(베타)에 대해서는 다음과 같은 방법으로 해결했습니다.
대신에:
if(gallery = this._getGalleryInfo(link.rel))
나는 443행과 1157행을 넣었습니다:
gallery = this._getGalleryInfo(link.rel)
if(gallery)
이것이 도움이 되기를 바랍니다!