2010-12-04 7 views
3

링크를 클릭하면 책갈피가 표시됩니다. 나는 그 링크 중 하나를 클릭 한 후 누군가가 뒤로 버튼을 눌렀을 때 상상해 봅니다. 북마크가 제안하는 링크 목록으로 되돌아 가려고합니다.자바 스크립트 북마크 렛을 통해 브라우저 기록 유지

그러나 어떤 웹 페이지에서도 실행할 수있는 북마크 릿으로이 작업을 수행 할 방법이 없습니다. 추천 링크를 클릭 한 다음 뒤로 돌아 가면 북마크릿의 Javascript없이 일반적으로 페이지 상단에 링크 목록이 표시되는 원본 페이지가 표시됩니다.

물론 사용자는 북마크릿을 다시 클릭 할 수 있지만 필요하지 않은 경우 좋을 것입니다. 나에게 호스팅되는 웹 사이트 (끔찍한 해결책 인 IMO)를 통해 리디렉션하지 않으면이 작업을 수행 할 수있는 방법이 있습니까?

+0

웹 사이트를 통해 리디렉션하면 브라우저의 기록에 쉽게 포함될 수 있으므로 다시 돌아가기 쉽습니다. 하나의 정적 HTML + 자바 스크립트 페이지를 호스팅 할 사람이 필요합니다. – joeytwiddle

답변

1

아니요, 이렇게 할 수있는 방법이 없다고 생각합니다. 페이지로드시 북마크 javascript를 자동으로 트리거 할 수 없다는 것을 알고있는 한, 사용자가 클릭하여 실행해야합니다.

이 기능을 사용하려면 브라우저 확장 프로그램을 개발해야합니다. 예를 들어, 제안 된 링크를 표시 할 수있는 브라우저 프레임에 새 영구 프레임을 추가 할 수 있습니다. 모질라/파이어 폭스는 자바 스크립트와 XUL (모질라의 GUI 마크 업 언어)을 기반으로하므로 devlop은 매우 간단합니다. 여기에 많은 자습서와 문서가 있습니다. https://developer.mozilla.org/en/extensions

IE에 대한 확장 기능을 개발할 수는 있지만 경험은 없습니다. 이 질문에 대한 답변 How do you develop a plugin for IE?을 시작하면 도움이 될 것입니다.

편집 : 나는 가능한 해결의 생각 : 당신의 북마크가 컨테이너에서 제안 된 링크 및 iframe에 렌더링 원래의 페이지로, 현재 창에 새 페이지를 만들 수 있습니다. 추천 링크를 클릭하면 iframe이 업데이트됩니다. 실제로 시도하지 않고 어떤 실제적인 문제가 발생할지 모르는 경우 (예 : SO와 같은 일부 사이트는 iframe에서 렌더링되지 않고 일부 링크는 target = "_ blank"를 가지고 새 창에서 열립니다) 또는이 형식 당신에게 바람직합니다.

+0

해결 방법의 유일한 문제점은 많은 웹 사이트가 프레임 버스터를 실행한다는 것입니다. 어쨌든 확장 기능이 앞으로 나아갈 수있는 유일한 방법 인 것 같지만 다른 답변을 제시하고 있습니다. – ehsanul

2

일부 html을 문자열로 구성한 북마크릿은 window.locationdocument.write()의 조합으로 표시 할 수 있습니까? 여기

은 샘플의 ...

var links = "<html><head><title>Suggested links</title></head><body>"; 
links += "<p><a href='http://example.com/'>Example Suggested Link</a></p>"; 
links += "</body></html>"; 
window.location = 'javascript:document.write("' + links + '");' ; 

당신은 당신이 올바른 문자열이 표시됩니다 있는지 확인하기 위해 인용 조심해야하지만, 빠른 테스트 후에는 백 버튼을 존중하는 것 같다 : 브라우저가 페이지를 변경

<html> 
    <head> 
    <title>JS Bin Sample bookmarklet</title> 
    </head> 
    <body> 
    <p><a href='javascript:(function(){ var l = "<html><head><title>Does this bookmarklet work?</title></head><body><p>"+ "<a href=\"http://example.com/\">Suggested link: Example.com</a></p>" + "<p><a href=\"http://example.net/\">Suggested link: Example.net</a></p>" + "</bo" + "dy></html>"; window.location = "javascript:document.write(%27" + l + "%27);"; })()'>Sample Bookmarklet - drag me to your toolbar</a></p> 
    </body> 
</html> 
+0

좋은 생각. 귀하의 예제는 Chrome에서 작동하지 않지만 다른 브라우저에서 작동하는 경우 기대했던 것보다 많습니다. – ehsanul

+0

필자는 FF 및 IE에서 북마크릿을 테스트했습니다. 다시 버튼 동작은 FF에서만 정확합니다. IE 사용자는 링크 목록을 얻으려면 버튼을 다시 클릭해야합니다. Chrome을 편리하게 설치할 필요는 없지만 그 문제에 대한 피드백을 얻을 수 있는지 알 수 있습니다 ... – Stobor

+0

ehsanul : Chrome에서 작동하지 않는다고 말하면 북마크릿이 작동하지만 뒤로 버튼이 아닌 것입니다. 작업? 또는 북마크릿이 전혀 작동하지 않습니까? 브라우저 간 북마클릿에서 실제로 작업하지는 않았으므로 확실하지 않습니다 ... – Stobor

0

경우, 다음 북마크 것 LO : - http://jsbin.com/ebuko4

코드가 ... 그것은 파이어 폭스에서 나를 위해 작동하지만, 나는 다른 곳을 테스트하지 않았습니다 se 제어. 따라서 한 가지 해결책은 페이지를 변경하지 않는 것입니다.

프레임 또는 iframe에서 제안 된 링크를 열 수 있습니다. 원하는 링크를 다시 볼 수있는 방법이있는 한 프레임을 창에 채울 수 있습니다.

참고이 stackoverflow 작동하지 않습니다! 그들은 프레임 grrr의 탈주.여기

은 다소 관련 예입니다 http://hwi.ath.cx/joeys_bookmarklets.html#splitpreview

0

사용자가 제안 된 링크 중 하나 (예 : 링크의 URL에 #info = ... 추가), 다음 사용자를 다음에 올 때 당신은 앞으로 데이터를 운반 할 수있는 경우 브라우저에서 다시 돌아 가지 않고도 북마크릿을 다시 활성화하여 링크 목록을 다시 가져올 수 있습니다.

북마크릿이 툴바에있는 경우 클릭 한 번만 수행하면됩니다. 그러나 북마크릿이 이전 페이지의 결과를 표시하려고 할 때 새로운 결과를 얻는 방법과 같은 새로운 문제가 제기 될 수 있습니다.

관련 문제