通过 URL 将用户所在的 URL 提交到另一个进程的最干净、最短的 Javascript 是什么?

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

  •  09-06-2019
  •  | 
  •  

与 Delicious 提交书签一样,我希望有一些标准 JavaScript,可以用来将任何访问过的 URL 提交到第三方网站(如果可以通过 URL 实现)。建议?

例如,我一直在使用

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)
})()

您可能需要更改查询字符串名称等,以匹配您的脚本所期望的内容。

如果您想通过您的网站自动跟踪用户,这可能是不可能的。您需要使用 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