2014-04-08 2 views
0

모든 결과 옆에 이미지를 표시하여 자바 자동 검색 결과 표시를 맞춤 설정하려고합니다. IE에서는 예외적으로 작동합니다. 여기에 설명 된대로 정확히자바 스크립트 appendChild Image IE 오류

if (typeof(_b.DOM) == "undefined") 
    _b.DOM = {}; 

/* create element */ 
_b.DOM.cE = function (type, attr, cont, html) 
{ 
    var ne = document.createElement(type); 
    if (!ne) 
      return 0; 

    for (var a in attr) 
      ne[a] = attr[a]; 
    var t = typeof(cont); 
    if (t == "string" && !html) 
      ne.appendChild(document.createTextNode(cont)); 
    else if (t == "string" && html) 
      ne.innerHTML = cont; 
    else if (t == "object") 
      ne.appendChild(cont); 
    return ne; 
}; 

IE는 "메서드 또는 속성 액세스에 대한 예기치 않은 호출"오류를 제공합니다 :의 JavaScript IE appendChild() - Unexpected call to method or property access

다음
var a = _b.DOM.cE("a", { href:"#" }); 
var pic = _b.DOM.cE("img",{src:"AutoSuggest/"+arr[i].id+".jpg",className:"float"}," "); 
a.appendChild(pic); 

_b.DOM.cE 기능입니다 : 이것은 내가 추가 한 코드입니다 응답 한 사람들은 IE가 <img ...></img>, 때문에 오류를 발생 시킨다는 것을 알았습니다. 실제로이 결과는 HTML에서 볼 수 있습니다. 물론 <img ... />이어야합니다. 어떻게 해결할 수 있습니까? 귀하의 도움을 크게 극명하게 될 것입니다!

+0

'_b.DOM.cE '이 어떻게 보이는지 알지 못해도 도움을 제공하는 것이 상당히 어렵습니다. 축소 된 코드를 수정하고 있습니까? –

+0

@ AndréDion 안녕하세요, Andre, 코드는 http://www.brandspankingnew.net/specials/ajax_autosuggest/ajax_autosuggest_autocomplete.html에서 제공됩니다. 코드를 다운로드 할 때 코드의 비 - 버전이 있습니다. 다운로드하지 않고도 코드를 얻을 수 있다면 검색을 계속할 것입니다 ... 몇 초 내에 찾을 수 없습니다. – David

+0

@ AndréDion 코드를 볼 수 있습니다. http://pastebin.com/FHZBt2WB – David

답변

1

img- 생성 라인 끝에서 ," "을 제거하십시오. 코드가하고있는 무엇

이해야 할 시도 :

theImageElement.appendChild(document.createTextNode(" ")); 

을 일부 브라우저 허용하고 자동으로이 오류를 무시할 수 있지만, 그것은 참으로 오류가 발생하고 IE는 엄격하게 올바른를 말하는 것은 그것에 대해 불평하는 입니다.

제쳐두고, HTML은 이 아니며에는 자체 마감 태그가 있습니다. 따라서 <img></img>은 이미지 요소의 "올바른"HTML 표현이지만, <img> 요소는 자식 노드를 가질 수 없습니다.

+0

Brilliant! ""부분을 제거 할 때 완벽하게 작동합니다. 다시 감사합니다! – David