1

Web魚拓というサービスがあり、そのサービスではURLの先頭に
gyo.tc/を付与したページに遷移するとその時点でのページのコピーが取得できます。

これを手軽に実行したいと思い、ブックマークレットに以下のJavaScriptを作成しました。

javascript: location.href = 'gyo.tc/' + location.href

しかし、このスクリプトを実行すると、
example.com/gyo.tc/exmaple.comのようになってしまいます。
やりたいこととしては、gyo.tc/exmaple.comのリンクを作成することなのですが、
このスクリプトのどの部分が原因なのでしょう。。。

ちなみに、F12でデベロッパーツールを開いてコンソールに

'gyo.tc/' + location.href

と入力すると、きちんとgyo.tc/exmaple.comが表示されます。

Chromeで試していて、バージョンは64.0.3282.167です。

2

gyo.tc/... というURLは、現在位置からの相対URLとして解釈されます。
相対URLとみなされないためには、https://gyo.tc/...//gyo.tc/... といった形式にします。

2
  • こちらの方法を試してみたところ、httpのサイトでは期待通りの動作をしたのですが、httpsのサイトではWeb魚拓のトップページにリダイレクトされてしまいました。 18年2月27日 9:38
  • 色々試した結果、動きそうな解決方法が見つかったので、新しく回答を記載します。 18年2月27日 9:48
1
javascript: location.href = '//gyo.tc/' + location.href

と修正をしてみたところ、httpのサイトでは期待通り動作しました。が、
httpsのサイトで実行するとWeb魚拓のトップページにリダイレクトされてしまったので、

httpのサイトで正しく動作した際のレスポンスヘッダを確認したところ、
gyo.tc/をURLの先頭に付与した場合、https://megalodon.jp/?url=example.com
のようにWeb魚拓のサイトのクエリパラメータに対象のサイトのURLが付与されたものが
返ってきていました。

なので、ブックマークレットのスクリプトを以下のように修正したところ、
正しく動作するようになりました。

javascript:location.href = 'https://megalodon.jp/?url=' + location.href

回答

“回答を投稿”をクリックすることで利用規約プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。

求めていた回答ではありませんか? のタグが付いた他の質問を参照するか、自分で質問をする