2009-11-20 4 views
1

인사말, 우리는 (죄송합니다, URL) 보안 사이트를 개설 할 누군가를 바라고 있어요 IE6에서 다소 난해한 버그를 잡은자바 스크립트 : 무효 (0), IE6, SWFAddress

은 수도 마주 치거나 빛을 비출 수있다. 세 가지 요인이 존재하는 경우에만 발생합니다

  1. 브라우저는 IE6입니다 (이것은 금융 클라이언트, 그리고 그 승인 된 브라우저의) 모든 Flash
  2. void(0)입니다
  3. SWFAddress 페이지에서 사용되는, 당신이 Instapaper를의 "나중에 읽기"북마크, 읽기 나중에 버튼으로 팝업 창을 실행하는 사용자가보고 된 URL을 제출하는 방법에 익숙하다면 자바 스크립트 문자열

설정 값으로 브라우저의 즐겨 찾기에서 호출 그들에게 그것은 로그하기에는 동일한 전제입니다.

이것은 내가 테스트 한 상위 창의 다른 URL에서 작동합니다. SWF가 SWFAddress를 사용하여 브라우저 기록/URL을 업데이트 할 때만 실패합니다. SWFAddress는 북마크릿 도구로 캡처하려는 딥 링크 URL의 요구 사항입니다.

제가 알고 있듯이 JavaScript 문자열은 부모 창에서 JavaScript 문자열로 이동하지 않도록 void (0)로 끝나야합니다. 이것은 href 속성에 자바 스크립트를 적용한 전형적인 예입니다.

우리는 두 가지보고있다 : 북마크에 JS 코드를 새 브라우저 창을 열고 처음으로 후

  1. 을 SWFAddress는 더 이상 브라우저 기록/URL 표시 줄을 업데이트하지 않습니다.
  2. 양식을 포함하는 새 브라우저 창을 제출하고 닫은 후에 책갈피를 통해 창을 여는 것은 void (0)를 무시하고 부모 창을 리디렉션합니다.

    javascript:var%20d=document;w=window,f='http://mydomain.com/popup?l=',l=d.location,e=encodeURI,p=e(l.href),u=f+p;s=p.split('/');if(s[3]=='p'||s[3]=='t')u=u+'&p='+s[5];w.open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');void(0); 
    

    플래시 조각이 다른 업체에 의해 관리되고, 그래서 자신의 코드에 통제 또는 통찰력이 없다 :

여기에 즐겨 찾기 코드입니다. 나는 정말로이 문제를 떠돌려는 사람들이 이러한 일련의 요인들로 그러한 문제를 겪었는지보기 위해 노력하고 있습니다. 당신의 북마크 몇 구문 오류를 가지고 조금 더 줄일 수처럼

덕분에 많이 마크

답변

1

안녕하세요 당신은 그것은 보이는이

<a href='#' onclick='document;w=window,f='http://mydomain.com/popup?l=',l=d.location,e=encodeURI,p=e(l.href),u=f+p;s=p.split('/');if(s[3]=='p'||s[3]=='t')u=u+'&p='+s[5];w.open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');'>click to visit</a> 
+0

답장을 보내 주셔서 감사합니다.불행하게도이 요구 사항은 링크가 브라우저 크롬에 있고 여러 인스턴스에서 일관되게 액세스 할 수 있도록 지정하므로 책갈피 구동 링크가됩니다. 문제를 좁히기 위해 SWF를로드하는 페이지에서 제안을 시도 할 수 있지만 궁극적으로 부모 창을 탐색하지 않고 책갈피 JavaScript 기능이 필요합니다. – user215547

1

을 시도 할 수 있습니다 :

javascript:var%20f='http://mydomain.com/popup?l=',l=document.location,e=encodeURI,p=e(l.href),u=f+p,s=p.split('/');if(s[3]=='p'||s[3]=='t')u+='&p='+s[5];open(u,'p','toolbar=0,menubar=0,directories=0,personalbar=0,resizable=0,status=1,width=300,height=460');void(0); 

반환 값 false를 추가 할 수도 있습니다. void (0) 대신에;

1

getURL() 또는 navigateToUrl()을 사용하는 경우 SWFAddress와 충돌이 있음을 알아야합니다. 설명을 보려면 http://www.asual.com/blog/swfaddress/2007/05/18/swfaddress-bad-practices.html을 확인하십시오.

+0

우리는 이미 그 문제를 해결했습니다. 이 경우 관련없는 JavaScript가 SWF 및/또는 SWFAddress에 영향을줍니다. 링크를 가져 주셔서 감사합니다. 우리는 확실히 그것을 검토 할 것입니다. – user215547