2013-08-17 2 views
0

OK, 이것은 내가 사용하고있는 코드 크롬에서 작동하지 파일 이름 항목 아래에있는 목록에 북마크하십시오.추가]은 북마크 목록을 유지하기 위해,

그러나 Chrome 및 기타 웹킷 브라우저에서는 작동하지 않습니다. 내가 알 수있는 한, 엔트리의 추가는 작동하지 않습니다. 파일을 추가하는 xml은 괜찮습니다. 파일은 단순히 파일 이름이지만 실행되지는 않습니다.

Append not working의 다른 SE 항목을 살펴 보았지만 html 문제 및 문제 인 것 같습니다. 브라우저에서 작동하지 않는 jquery 메소드의 다른 표시를 찾을 수 없습니다.

+0

jsfiddle sample? –

+0

http://jsfiddle.net/7fTf2/ - 이것은 독립 실행 형으로 실행되도록 코드를 약간 수정 한 바이올린입니다. –

+0

마지막 줄을 "alert ($ (xmlDoc) .children ("bookmarks "). children(). length);"로 변경하려고했습니다. 문제가 더 잘 설명되어 있습니다. –

답변

0

좋아요, 문제를 발견했지만 완전히 이해하지 못했습니다. 추가 된 항목을 JQ 값으로 만들면 작동하는 것 같습니다. 내 코드는 다음과 같아야합니다.

var newBookmark=$("<mark text='hello' page='1' />"); 
if ($(xmlDoc).find("file[name='"+file+"']").length===0) 
    $(xmlDoc).children("bookmarks").first().append($("<file name='"+file+"'/>")); 
$(xmlDoc).find("file[name='"+file+"']").first().append(newBookmark); 

(Chrome/웹킷 브라우저에서 실행하는 경우)

0

동일한 문제가 있습니다. Firefox는 정상적으로 작동하지만 Chrome에서 내 xml 스 니펫을 추가하지 않습니다. 모든 것을 시도했다. 마지막으로 크롬과 파이어 폭스 모두에서 작동하는 솔루션을 보유하십시오. 다음은 작동하지 않았다 내 원래의 코드이며, 그 해결책 아래 :

var xml = $.parseXML(o.text); 
$(xml).find('documentGroups').append('<documentGroup documentGroupID="0" name="Default Group"/>'); 

은 위의 실패하지만, 아래의 작품. 노드를 삽입하기 위해서는 동일한 XML 문서의 멤버로 노드를 만들어야하기 때문에 위 코드는 다른 XML 문서에 새 documentGroup 노드를 만듭니다. 아래 코드는 노드가 삽입 될 동일한 XML 문서 안에 노드를 생성하도록합니다.

var xml = $.parseXML(o.text); 
var defaultGroup = xml.createElement('documentGroup'); 
$(defaultGroup).attr('documentGroupID', '0').attr('name', 'Default Group'); 
$(xml).find('documentGroups').append(defaultGroup); 

나는이 JQuery와 내에서 해결 될 전망이다. 첫 번째 all-jQuery 구문을 사용하여 Firefox는 노드를 잘 삽입합니다. 크롬도 좋습니다. 그렇지 않으면 jQuery가 구문을 교차 브라우저로 만드는 목표를 달성하지 못하고 있습니다. jQuery는 훌륭하다. 나는 그것을 노크하는 것이 아니다. 문제가 있다고 생각하는 부분에 대해 의견을 말하면됩니다.

$('<node/>') 구문으로 jQuery가 innerHTML을 사용하여 브라우저의 XML 구문 분석기 대신 문자열을 구문 분석하여 HTML 구문이 올바르게 구문 분석하지 못하도록하는 것으로 확인했습니다.

관련 문제