IE9 JavaScript 오류: SCRIPT5007: 'ui' 속성의 값을 가져올 수 없음: 개체가 null이거나 정의되지 않았습니다.
내 웹 사이트는 크롬, 파이어폭스 및 인터넷 익스플로러 8에서 잘 작동합니다.그러나 Internet Explorer 9에서는 구성 요소 위에 마우스를 올려 놓으면 매우 이상한 오류가 발생합니다.
SCRIPT5007: 'ui' 속성의 값을 가져올 수 없습니다. 개체가 null이거나 정의되지 않은 ScriptResource.axd?d=sTHNYcjtEdStW2Igk0K4NaRiBDytPljgMCYPqxV5입니다.NEZ1IETx3DRHufMFTEMoh2L3771sigGlR2bqlOxaiwXVEVEPerLDL0hHHUFDTOM0o55K0&t=ffffffd37cb3a1, 라인 181 문자 1914
그리고 자바스크립트의 오류에 대한 링크를 따라가면 다음과 같은 코드 조각들을 보여줍니다.
onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)}
저는 이 오류를 어떻게 해결해야 할지 잘 모르겠습니다.저는 이 해결책을 보았지만 그것이 저에게 문제를 해결해 주지는 못했습니다.
아이디어가 있습니까?
많은 JavaScript 라이브러리(특히 최근이 아닌 라이브러리)는 IE9가 많은 작업을 처리할 때 IE8과 충돌하기 때문에 IE9를 잘 처리하지 못합니다.
IE를 위해 냄새를 맡는 JS 코드는 IE9에서 매우 자주 실패할 것입니다. 이러한 코드가 IE9를 특별히 처리하도록 다시 작성되지 않는 한 말입니다.
JS 코드를 업데이트하기 전에 "X-UA-Compatible" 메타 태그를 사용하여 웹 페이지를 IE8 모드로 강제로 전환해야 합니다.
편집: 3년이 지난 지금도 IE11에 올라왔는데 아직도 많은 JS 라이브러리가 IE9을 기본적으로 지원해야 하고 대부분이 IE10을 지원해야 하므로 JS 라이브러리를 업그레이드할 의도가 없는 한 요즘 메타 태그가 필요하지 않을 것입니다.그러나 IE10은 도메인 간 스크립팅 및 일부 CDN 기반 라이브러리 코드 위반과 관련하여 변경 사항을 변경합니다.라이브러리 버전을 확인합니다.예를 들어 CDN의 Dojo 1.9는 IE10에서 깨지지만 1.9.1이 해결합니다.
편집 2: 이제 정말로 여러분의 행동을 정리할 필요가 있습니다.우리는 지금 2014년 중반에 있습니다!!!저는 여전히 이것에 대한 찬성표를 얻고 있습니다!사이트를 수정하여 오래된 IE 하드코드 종속성을 제거하십시오!
이것이 내가 가장 인기 있는 대답이 될 줄 알았다면 아마 더 많은 시간을 들여 그것을 다듬었을 것입니다.
EDIT 3: 이제 거의 2016년입니다.지지율은 여전히 상승하고 있습니다...레거시 코드가 많이 있는 것 같아요언젠가 우리의 프로그램이 우리보다 오래 살 것입니다.
저는 IE9에서 같은 문제를 겪고 있었습니다.저는 위의 답변에 따라 다음과 같은 행을 추가했습니다.
<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />
내 안에서<head>
그리고 그것은 성공하였다.
저는 IE4 이상의 냄새를 맡는 코드를 작성했으며 현재 제 개인 사이트뿐만 아니라 제 회사의 고객 사이트에서도 완벽하게 작동하고 있습니다.
다음 열거된 상수 및 함수 변수를 페이지의 javascript include 파일에 포함합니다...
//methods
var BrowserTypes = {
Unknown: 0,
FireFox: 1,
Chrome: 2,
Safari: 3,
IE: 4,
IE7: 5,
IE8: 6,
IE9: 7,
IE10: 8,
IE11: 8,
IE12: 8
};
var Browser = function () {
try {
//declares
var type;
var version;
var sVersion;
//process
switch (navigator.appName.toLowerCase()) {
case "microsoft internet explorer":
type = BrowserTypes.IE;
sVersion = navigator.appVersion.substring(navigator.appVersion.indexOf('MSIE') + 5, navigator.appVersion.length);
version = parseFloat(sVersion.split(";")[0]);
switch (parseInt(version)) {
case 7:
type = BrowserTypes.IE7;
break;
case 8:
type = BrowserTypes.IE8;
break;
case 9:
type = BrowserTypes.IE9;
break;
case 10:
type = BrowserTypes.IE10;
break;
case 11:
type = BrowserTypes.IE11;
break;
case 12:
type = BrowserTypes.IE12;
break;
}
break;
case "netscape":
if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { type = BrowserTypes.Chrome; }
else { if (navigator.userAgent.toLowerCase().indexOf("firefox") > -1) { type = BrowserTypes.FireFox } };
break;
default:
type = BrowserTypes.Unknown;
break;
}
//returns
return type;
} catch (ex) {
}
};
그러면 다음과 같은 조건부 기능을 사용하기만 하면 됩니다.
예를value = (Browser() >= BrowserTypes.IE) ? node.text : node.textContent;
또는WindowWidth = (((Browser() >= BrowserTypes.IE9) || (Browser() < BrowserTypes.IE)) ? window.innerWidth : document.documentElement.clientWidth);
또는sJSON = (Browser() >= BrowserTypes.IE) ? xmlElement.text : xmlElement.textContent;
알겠어요?이게 도움이 되길 바랍니다.
아, IE10이 출시된 후 브라우저() 기능을 QA하여 규칙을 변경하지 않았는지 확인하는 것을 염두에 두는 것이 좋습니다.
이것은 IE 11에서 저에게 효과가 있었습니다.
<meta http-equiv="x-ua-compatible" content="IE=edge; charset=UTF-8">
끝에 쉼표가 있는지 확인합니다.
},
{
name: 'МОФ. Перелив из баков. м3/ч',
data: graph_high3,
dataGrouping: {
units: groupingUnits,
groupPixelWidth: 40,
approximation: "average",
enabled: true,
units: [[
'minute',
[1]
]]
}
} // if , - SCRIPT5007
것을 에도 이 할 수 있습니다.file://
에 http://
)..
이에 대한 몇 가지 논의가 있습니다. https://github.com/jeromegn/Backbone.localStorage/issues/55
자바스크립트 코드를 함수에 추가한 다음 문서 본문이 로드된 후 함수를 호출하는 것도 시도해야 합니다.그것은 나에게 효과가 있었습니다 :)
저 또한 같은 문제에 직면하고 있었습니다.
web.config 파일에 인증 구성을 쓰지 않고 .aspx 페이지에서 아래 코드를 사용하고 있었습니다.Web.config에서 설정을 작성한 후 코드를 실행할 수 있습니다.
<% If Request.IsAuthenticated Then%>
<table></table>
<%end if%>
언급URL : https://stackoverflow.com/questions/5787245/ie9-javascript-error-script5007-unable-to-get-value-of-the-property-ui-obje
'programing' 카테고리의 다른 글
오류 메시지를 읽기 전에 Powershell 창이 사라짐 (0) | 2023.08.15 |
---|---|
프로젝트는 모든 파일을 나열하거나 '포함' 패턴을 사용해야 합니다. (0) | 2023.08.15 |
Android 응용 프로그램의 "번들"이란 무엇입니까? (0) | 2023.08.10 |
XMLHttpRequest responseType = "json"에서 SYSTON_ERR: DOM 예외 12 오류가 발생함 (0) | 2023.08.10 |
Android 왼쪽에서 오른쪽으로 슬라이드 애니메이션 (0) | 2023.08.10 |