通过 URL 将用户所在的 URL 提交到另一个进程的最干净、最短的 Javascript 是什么?
-
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>
不隶属于 StackOverflow