2011-12-21 3 views
0

나는 인터넷 전문가가 아니기 때문에 나는 도구를 만들고 주변을 조작하고 싶다. 최신 도구 중 하나는 vb 게시판에 대한 "고급"검색이었으며 일부 검색 옵션은 비활성화되었습니다. 내가 작성하고 구글 크롬에서 테스트 완벽하게 작동합니다. 나는 FF 나 IE에서 작동하지 않을 이유를 알지 못한다.크로스 브라우저 비 호환성? (jQuery)

전제 : 이 페이지는 사용자의 쿼리 및 검색 옵션을 사용하고, URL을 형식화 한 다음 새 창에서 엽니 다.

나는 이전에 Q의 질문을했지만 일반적으로 적은 양의 코드로 문제를 좁혔습니다. 이것은 크로스 브라우저 문제이므로 코드를 공개하는 방법에 대한 단서가 없습니다. 그래서 내가 할 것은 사이트에 대한 링크를 제공하고 소스를 확인하도록 요청하는 것입니다. 또한 소스를 쉽게 게시 할 수있는 방법에 대한 제안을받을 수 있습니다.

페이지 : http://advlolsearch.herobo.com/

JS : http://advlolsearch.herobo.com/js/page.js

CSS : http://advlolsearch.herobo.com/css/mystyle.css

해결 : Heyooooooo! 나는 그 문제를 발견했다.

$(".button").click(function() { 
    var ID = event.target.id 

크롬 내가 무엇을하고 있었는지 이해하지만 FF는 나를 밖으로 DERP 싶어

$(".button").click(function(event) { 
    var ID = event.target.id 

에 : 나는 변화 할 필요가 있었다. 도움을 주셔서 감사합니다. 코멘트에 몇 가지 실행중인 질문이 있기 때문에 이것을 열어 두십시오.

+0

대단히 큰 if/else 문입니다. 지도/배열/등 사용을 고려 했습니까? 단순한 데이터 구조를 위해이를 제거해야합니까? –

+0

"작동하지 않음"을 정의하십시오. 무슨 일이야? 콘솔에 오류가 있습니까? –

+0

'window.open()'을하려고하기 때문에 팝업 차단에 대한 경고 메시지가 나타 납니까? 각 브라우저에는 차단/허용 항목에 대한 자체 논리가 있으며 논리에 영향을주는 설정도 있습니다. – jfriend00

답변

1

이것은 실제로는 주석 (답변이 아님)입니다.하지만 주석에 상당 부분의 코드를 넣을 수는 없으므로 도움이 될 것이라고 생각하므로 여기에 설명해 드리겠습니다. 이것은 아마도 크로스 브라우저 문제가 아닙니다 (팝업 차단으로 인한 것 같습니다).하지만 코드를 마른 상태에서 모든 데이터를 테이블에 올려 놓고 테이블에서 찾아 봄으로써 반복되는 모든 코드 조각을 제거해야합니다. 다음과 같은 짧은 코드 하나를 사용하십시오.

... 
if (val=="forum") { 
    var selectedforum = $('#select').val(); 
    var searchby = $('input:radio[name=search]:checked').val(); 
    var showas = $('input:radio[name=show]:checked').val(); 
    var dataLookup = { 
     na: { 
      all: [], 
      np: [29], 
      tg: [29], 
      mm: [48,49,43], 
      sr: [48], 
      tw: [49], 
      dm: [43], 
      ll: [9,2,16,41,23,15,20,32] 
      // ... put the rest here 
     }, 
     euw: { 
      all: [], 
      np: [4] 
      // rest of the data here 
     }, 
     eune: { 
      all: [], 
      np: [4] 
      // rest of the data here 
     } 
    }; 
    if (region in dataLookup) { 
     var data = dataLookup[region]; 
     if (selectedForum in data) { 
      fID = ""; 
      for (var i = 0; i < data[selectedForum].length; i++) { 
       fID += "&forumchoice[]=" + data[selectedForum][i]; 
      } 
      var theURL = "http://" + region + ".leagueoflegends.com/board/search.php?do=process&query=" + query + fID + "&titleonly=" + searchby + "&showposts=" + showas; 
      theURl = theURL.replace(' ','%20'); 
      window.open(theURL); 
     } 
    } 
} else if ... 
+0

위 코드를 정말 좋아합니다. 그러나 데이터를 추가하면 "Uncaught SyntaxError : 예기치 않은 토큰 :"이 자바 스크립트 콘솔에 발생합니다. 내 테스트 페이지는 http://dl.dropbox.com/u/12531574/ADVLolSearch/index.html 여기에 있습니까? –

+0

오류 메시지에서 참조 된 줄 번호를 보았습니까? 'cd : [35]'줄 끝에 쉼표가없는 것을 보여줍니다. – jfriend00

+0

[] 뒤에 문제가 발견되었을 수도 있습니다. Firefox 오류 콘솔에서 Chrome을 찾지 못했습니다. 아 친구 친구 닌자가 올렸습니다. 나는 아직도 고치고있다. 나는 근원에 적절한 신용을주고 싶다. 내가 당신에게 어떻게 신용을 줬는가? –