Какой самый чистый и короткий Javascript для отправки URL-адреса, по которому пользователь находится, в другой процесс через URL-адрес? - PullRequest
2 голосов
/ 10 сентября 2008

Как и в закладке «Delicious», я хотел бы иметь стандартный JavaScript, который можно использовать для отправки любого посещенного URL на сторонний сайт, когда это возможно по URL. Предложения?

Например, я использовал

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

Пока, но интересно, есть ли что-нибудь более изощренное, что я мог бы использовать или лучше практиковать.

Ответы [ 3 ]

2 голосов
/ 10 сентября 2008

Хотите что-то в точности как букмарклет Delicious (например, что-то, на что пользователь активно нажимает, чтобы отправить URL)? Если это так, вы можете просто скопировать их код и заменить целевой URL:

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

Возможно, вам потребуется изменить имена строк запроса и т. Д., Чтобы они соответствовали ожиданиям вашего сценария.

Если вы хотите автоматически отслеживать пользователя на своем веб-сайте, это, вероятно, будет невозможно. Вам нужно будет запросить URL с помощью AJAX, но веб-браузер не позволит Javascript сделать запрос за пределами исходного домена. Может быть, это возможно с iframe обманом.

Редактировать: Джон избил меня до этого.

1 голос
/ 10 сентября 2008
document.location = "http://url_submitting_to.com?query_string_param=" + window.location;
0 голосов
/ 10 сентября 2008

Другой вариант будет примерно таким:

<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>
...