ユーザーがアクセスしている URL を URL 経由で別のプロセスに送信するための最もクリーンで短い Javascript は何ですか?

StackOverflow https://stackoverflow.com/questions/54426

  •  09-06-2019
  •  | 
  •  

質問

Delicious の送信ブックマークレットと同様に、URL で可能な場合に、訪問した URL をサードパーティのサイトに送信するために使用できる標準 JavaScript が欲しいと考えています。提案はありますか?

たとえば、私が使ってきたのは、

javascript:void(location.href="http://www.yacktrack.com/home?query="+encodeURI(location.href)) 

ここまでのところ、もっと洗練されたものやより良い練習方法があるのではないかと考えています。

役に立ちましたか?

解決

Delicious ブックマークレットとまったく同じようなもの (ユーザーが積極的にクリックして URL を送信するものなど) が必要ですか?その場合は、コードをコピーしてターゲット URL を置き換えるだけでよいでしょう。

javascript:(function(){
    location.href='http://example.com/your-script.php?url='+
    encodeURIComponent(window.location.href)+
    '&title='+encodeURIComponent(document.title)
})()

スクリプトが期待するものと一致するように、クエリ文字列名などを変更する必要がある場合があります。

Web サイトを通じてユーザーを自動的に追跡したい場合、これはおそらく不可能です。AJAX を使用して URL をリクエストする必要がありますが、Web ブラウザでは Javascript が元のドメインの外でリクエストを行うことを許可しません。たぶんそれは可能です iframe 策略。

編集: ジョンは私をそれに打ち負かしました。

他のヒント

document.location = "http://url_submitting_to.com?query_string_param=" + window.location;

別のオプションは次のようなものです。

<form action="http://www.yacktrack.com/home" method="get" name="f">
  <input type="hidden" name="query" />
</form>

その場合、JavaScript は次のようになります。

f.query.value=location.href; f.submit();

または、次のように [リンクを保存] と送信を組み合わせることができます。

<form action="http://www.yacktrack.com/home" method="get" name="f" onsubmit="f.query.value=location.href;">
  <input type="hidden" name="query" />
  <input type="submit" name="Save Link" />
</form>

サーバー側のコードを実行している場合は、場所をプラグインして、JavaScript を使用しないようにすることができます。

<form action="http://www.yacktrack.com/home" method="get" name="f">
  <input type="hidden" name="query" value="<%=Response.Url%>" />
  <input type="submit" name="Save Link" />
</form>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top