2009-08-16 3 views
0

그래서 저는 이것을 얼마 동안 숙고하고 다양한 전략을 시도해 왔습니다. 기본적으로 북마크릿을 만들려고하는데, 클릭 할 때 어떤 페이지에서든지 머리글을 팝업합니다. 이 머리글에는 작은 양식이 있으며 그 내용은 서버에 제출됩니다. 이 메시지가 제출되면 헤더가 사라집니다. 모든 경우에, 나는 간단한 로더 북마크 내 JS를로드 한 : 그것은 생각보다개념 : 북마클릿을 사용하여 헤더 양식을 만들고 제출 후 다시 제거하십시오.

javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://localhost/bklts/script.js';})(); 

문제는 잔재주입니다 - 내가 가지고 올 한 모든 아이디어는 몇 가지 예를 실패 - 그리고 지금은 잊어 수 있습니다 IE와의 호환성, 나중에 다루겠다.

아이디어 1은 상단의 양식과 하단의 iframe 내부의 원본 페이지로 브라우저를 내 서버의 페이지로 리디렉션했습니다. 이것은 매우 잘 작동하지만 매우 느립니다. 3 페이지가로드되어 양식과 원본 페이지를보고, 다른 페이지로드가 이어지고 양식이 제출되어 원래 페이지로 돌아옵니다. 또한, 그것은 프레임이 파괴 된 사이트에서 중단됩니다.

아이디어 2는 원본 페이지의 맨 위에 iframe을 삽입하고 iframe은 내 서버의 양식 문서를 src'ing하는 것이 었습니다. 이것은 훌륭하게 작동하며 1 페이지로드 (iframe 내용) 만 필요합니다. 그러나 원본 페이지의 절대 배치 된 요소는 내 머리글 위에 겹쳐져 절대 위치에 남아 있지만 다른 모든 요소는 아래로 이동합니다. 게다가 폼이 폼을 제출 한 후에 클릭 할 iframe과 그 자체를 숨길 iframe 아래에 링크를 만드는 것보다 짧게 제출 된 후에는이 헤더를 제거하는 것이 불가능하다는 것을 알았습니다. 긴 이야기는 짧지 만 생산 품질은 아닙니다.

아이디어 3은 프레임을 전혀 사용하지 않았습니다. 페이지 상단에 div를 삽입하고이 양식을 내 서버에 제출하십시오. 이 문제는 당연히 원래 페이지의 스타일 시트가 새로운 div에 영향을 미친다는 것과 나에게있어 내 인생에있어 이 아닌의 스타일을 지정하여 헤더 -div (또는 스타일 만 지정) 내 규칙에 따라). 나는 이것이 jQuery에서 사소한 것이라고 말했고, 배우기 시작/사용하면서, 나는 이것을 할 방법을 찾지 못했다. 또한 위치도 있습니다 : 아이디어 2에서 설명한 절대적인 문제이지만, 그것이 사소한 것 같습니다.

내가이 일을하는 방식에 어리 석고 있습니까? 머리글을 작성하고 새 창을 열어 보려는 모든 희망을 포기해야합니까? 머리글은 정말 좋겠지 만 머리글이 불가능하면 창으로 충분합니다. (2009 년 - 꽤 많이 아무것도 요즘 온라인에서는은 온라인으로 불가능합니다 ...)

어쨌든, 위의 아이디어 또는 완전히 새로운 아이디어는 매우 환영합니다.

시간 내 주셔서 감사 많은,

말라

답변

1

어떻게 페이지 내로 <iframe>를 삽입하는 방법에 대한?

간단해야하며 원래 페이지의 CSS를 상속하지 않아야합니다. 쿼리 문자열의 iframe에 필요한 항목을 전달할 수 있습니다.

나는 그것이 자멸 할 수 있다고 생각합니다. 어쩌면 원래 도메인의 페이지로 리다이렉션하여 폴링 할 수 있습니다.

+0

iframe이 최선의 방법 인 것처럼 보입니다. 현재 구현 상태가 "최고"이지만 실제로 폴링이 가장 좋은 옵션입니까?원래 도메인의 페이지로 리디렉션 할 필요가 없기 때문에 원래 페이지에서 해당 위치를 폴링 할 수 있고 http : //server/submitted.php가되면 닫을 수 있습니다. 폴링은 항상 까다 롭습니다. 제출 후 일정한 시간 내에 닫을 수는 없으므로 (매 초마다 확인할 수 있지만 극단적 인 것으로 보입니다) ... – Mala

+1

나는 당신을 ' 동일한 원본 정책으로 인해 orignal 페이지에서 위치를 폴링 할 수 있습니다. iframe 위치가 다른 도메인에 있습니다. – Greg

+0

iframe의 위치 만 폴링하면 원하는만큼 자주 폴링 할 수 있습니다 - 10 번 두 번째 괜찮을 것입니다 – Greg

관련 문제