通过 URL 将用户所在的 URL 提交到另一个进程的最简洁、最短的 Javascript 是啥?

Posted

技术标签:

【中文标题】通过 URL 将用户所在的 URL 提交到另一个进程的最简洁、最短的 Javascript 是啥?【英文标题】:What's cleanest, shortest Javascript to submit a URL the user is at to another process via URL?通过 URL 将用户所在的 URL 提交到另一个进程的最简洁、最短的 Javascript 是什么? 【发布时间】:2008-09-10 15:35:31 【问题描述】:

像 Delicious 提交书签一样,我想要一些标准的 javascript,如果可以通过 URL,我可以使用它来将任何访问过的 URL 提交到 3rd 方站点。有什么建议吗?

比如我一直在用

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

到目前为止,但想知道是否有更复杂的东西我可以使用或更好的做法。

【问题讨论】:

【参考方案1】:

您是否想要与 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诡计是可能的。

编辑:约翰打败了我。

【讨论】:

【参考方案2】:
document.location = "http://url_submitting_to.com?query_string_param=" + window.location;

【讨论】:

【参考方案3】:

另一种选择是这样的:

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

【讨论】:

以上是关于通过 URL 将用户所在的 URL 提交到另一个进程的最简洁、最短的 Javascript 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 django-allauth 登录信号将用户重定向到另一个 url

长 URL 值未在 Codeigniter 中提交

使用 ruby​​ 中的提交按钮重定向到另一个 URL

将移动用户重定向到移动 url,将平板电脑/ipad 用户重定向到另一个 url [重复]

当用户单击链接时,将变量传递到另一个 url 的选项或方法是啥? [关闭]

如何将用户路由到另一个 url Jinja