2010-12-04 16 views
3

リンクをクリックすると、そのブックマークレットが表示されます。それらのリンクの1つをクリックした後、誰かが戻るボタンを押すと、ブックマークレットが示唆するリンクのリストに戻ることが想像されます。JavaScriptのブックマークレットを使用してブラウザの履歴を保存する

しかし、ブックマークレットを使ってこれを可能にする方法はありません。これはどのWebページでも実行できます。提案されたリンクをクリックして元のページに戻ると、ブックマークレットからのJavascriptを使わずに元のページが表示され、ブックマークレットはページの上にリンクのリストを表示します。

もちろん、ユーザーはブックマークレットをもう一度クリックすることはできますが、それが必要ない場合はいいと思います。私が主催するウェブサイト(これは恐ろしい解決策のIMOですか?)を経由してリダイレクトすることができません。

+0

ウェブサイトをリダイレクトすると、少なくともそのURLはブラウザの履歴の一部となり、簡単に戻ることができます。静的なHTML + Javascriptページを1人ホストする必要があります。 – joeytwiddle

答えて

1

いいえ、私はこれを行う方法があるとは思わない - あなたが実行するためにクリックしなければならないユーザーがブックマークレットのjavascriptを自動的にトリガーすることはできません。

この機能を主張する場合は、代わりにブラウザ拡張機能を開発する必要があります。たとえば、新しい永続フレームをブラウザウィンドウに追加して、提案されたリンクを表示することができます。 Mozilla/Firefoxは、すべてのjavascriptとXUL(MozillaのGUIマークアップ言語)をベースにしているので、devlopにはかなり簡単です。チュートリアルとドキュメントの多くはここにあります:https://developer.mozilla.org/en/extensions

私はこれについての経験はありませんが、IE用の拡張機能も開発できます。この質問への回答How do you develop a plugin for IE?をお使いになれば幸いです。

編集:私は可能性のある回避策を考えました:あなたのブックマークレットは、現在のウィンドウに新しいページを作成し、コンテナ内の推奨リンクとiframeにレンダリングされた元のページを作成します。推奨リンクのいずれかをクリックすると、iframeが更新されます。これを実際に試してみることなく、実際に何が起こるかわからない場合(SOなどの一部のサイトはiframeでレンダリングされず、一部のリンクはtarget = "_ blank"を持ち、新しいウィンドウで開きます)あなたにとって望ましいでしょう。

+0

回避策の唯一の問題は、多くのWebサイトがフレームバスターを実行することです。とにかく、拡張機能が唯一の方法であるように見えますが、私は他の答えが出てくるのを待っています。 – 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 + '");' ; 

あなたが右の文字列が表示されることを確認するために、あなたが引用して注意する必要がありますが、簡単なテストの後に、それはバックボタンを尊重しているようだ...

は、ここにサンプルです: http://jsbin.com/ebuko4 - それはFirefoxで私の作品が、私は他の場所でそれをテストしていない...

コードは次のとおりです。

<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がしますセ制御。したがって、1つの解決策はページを変更しないことです。

フレームまたはiframeに推奨リンクを開くことができます。あなたは、もしあなたが好きであれば、提案されたリンクのリストをもう一度見るための方法がある限り、フレームをウィンドウに塗ることができます。

これはstackoverflowでは機能しません。彼らはフレームgrrrの勃発。その後、ユーザーは提案のリンクのいずれかを以下のときは、転送データを運ぶことができる場合http://hwi.ath.cx/joeys_bookmarklets.html#splitpreview

0

(例えば、リンクのURLに#info = ...を追加)、ユーザー:ここで

やや関連の例ですブラウザーに戻らずに、ブックマークレットを再びアクティブにすることによって、リンクのリストを戻すことができます。

ブックマークレットがツールバーにある場合、これは1回のクリック操作です。しかし、ブックマークレットがあなたに前のページの結果を表示しようとしているときに新鮮な結果を得るには、新しい問題が発生する可能性があります。

関連する問題